Tracer l’exécution d’une application

© Christian PAULUS. Document créé le 10 août 2010 , mis à jour le 1er février 2011.

L'amour... il y a ceux qui en parlent et il y a ceux qui le font. A partir de quoi il m'apparaît urgent de me taire. Pierre Desproges

Accueil du site > Astuces > MacOSX > Tracer l’exécution d’une application

AppleScript, shell, logger, syslog / MacOsX 10.6 (Snow Leopard)

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 log

Log 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 log

En 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

Plussoyez !

Les forums sont fermés.