Surveiller Console.app pour une string et notifier une fois trouvé

Est-il possible de surveiller tous les messages dans Console.app pour une string, puis avertir l'user quand cette string se produit?

J'ai le problème que j'obtiens des erreurs d'E / S de disque et je soupçonne que ce n'est pas un échec de disque dur, mais d'une certaine manière est provoqué par un morceau de logiciel. La seule façon que je sais que j'ai des erreurs d'E / S de disque est que je regarde parfois tous les messages dans le Console.app par curiosité. Bien sûr, cela ne me donne pas d'informations en time réel.
Par conséquent, je souhaite recevoir une notification lorsque le message suivant apparaît dans la console:

07/01/2013 20:59:06 kernel disk0s1: I/O error. 

Cela est-il possible? C'est OK si cela signifie que la console doit être allumée tout le time.

Je suis sur Snow Leopard 10.6.8.

Je n'utiliserais pas Console.app. Utilisez plutôt Terminal.app avec la command suivante:

 tail -f /var/log/system.log | grep "ssortingng you are looking for" 

puis laissez cette window ouverte et vous verrez toutes les inputs correspondantes dans cette window pendant que vous travaillez.

Sachez également que lorsque le file system.log est tourné (en raison de la taille / du time), la queue s'arrête. vous devrez redémarrer la command.

  1. sudo /usr/bin/gem install terminal-notifier

  2. Enregistrez ce script sous la forme ~/bin/logcheck et exécutez chmod +x ~/bin/logcheck

     #!/bin/bash tmp=${TMPDIR}logcheck [ -f $tmp ] && last=$(cat $tmp) || last="" found=$(grep -A-1 "^$last" /var/log/system.log | grep -F 'kernel disk0s1: I/O error') [ -n "$found" ] && terminal-notifier -message "$found" last=$(grep -Eo '^\w{3} [ \d]\d \d\d:\d\d:\d\d' /var/log/system.log | tail -n1) printf %s "$last" > $tmp 
  3. EDITOR=nano crontab -e , append */5 * * * * ~/bin/logcheck