Applescript propose la fonction log pour tracer l’exécution de votre application. Avec pour contrainte d’exécuter votre script sous l’Editeur AppleScript et consulter la fenêtre Historique des événements.
Il y a peut-être plus efficace : utiliser la puissance du syslog de votre Mac.
La commande unix logger permet d’envoyer un message sur les journaux de votre système. Démonstration :
- Lancer l’application Terminal.app (qui se trouve dans le répertoire /Applications/Utilitaires/)
- Consulter le syslog (journal système) en lançant la commande "tail -F /var/log/system.log".
- Ouvrez un autre terminal
- Entrer la commande
logger Hello Néant
suivi du retour chariot. Votre message Hello Néant apparait dans l’autre fenêtre.
En AppleScript :
on run
log "Hello Néant"
end run
on log (msg)
do shell script "logger " & (quoted form of msg)
end logLog dans un fichier personnel
La commande unix echo permet de renvoyer sur un autre fichier que le journal système, via une redirection du shell. Exemple :
- Lancer l’application Terminal.app (qui se trouve dans le répertoire /Applications/Utilitaires/)
- Créer votre journal via "touch mon_journal.txt"
- Lancer la commande "tail -F mon_journal.txt".
- Ouvrez un autre terminal
- Entrer la commande
echo "Hello Néant" >> mon_journal.txt
suivi du retour chariot. Votre message Hello Néant apparait dans l’autre fenêtre.
En AppleScript (le journal.txt apparaît sur le bureau) :
on run
log "Hello Néant"
end run
on log (msg)
set the my_log to ¬
(POSIX path of ((path to desktop) as text) & "mon_journal.txt")
try
-- Créer si besoin
do shell script "touch " & (quoted form of my_log)
-- Ajouter le message en fin de fichier
do shell script "echo " & ¬
(quoted form of msg) & ¬
" >> " & (quoted form of my_log)
end try
end logEn AppleScript, sans utiliser le shell (le journal.txt apparaît sur le bureau) :
on run
log "Hello Néant"
end run
on log (msg)
set the my_log to ¬
((path to desktop) as text) & "mon_journal.txt"
try
-- ouvrir le fichier. Finder le crée si besoin
open for access file the my_log with write permission
-- écrire le message en fin de fichier
write (msg & return) to file the my_log starting at eof
-- fermer le fichier
close access file the my_log
on error
try
close access file the my_log
end try
end try
end log