Sous Mac OS X, comment puis-je me connecter à Console.app depuis le terminal?

8

J'ai vu l'utilisation de /dev/consoleplusieurs scripts pour Mac OSX, mais je ne sais pas comment il est utilisé. J'ai vérifié Console.app et n'ai pas vu les résultats de ma commande de test:

test d'écho> / dev / console

être imprimé là-bas, alors où va-t-il, ou comment l'utiliseriez-vous?

cwd
la source
@Qosmo. Cette question est valide à 100% pour le super utilisateur et il n'y a pas besoin ni raison de la migrer.
BinaryMisfit
Être valide ne signifie pas qu'il serait mieux servi là-bas? Pourquoi a-t-il été créé? Quoi qu'il en soit, ce n'est qu'une suggestion ...
Brave Newbie

Réponses:

7

Le /dev/consolepériphérique n'est pas spécialement lié à l' application Console .

Dans Mac OS X 10.6, l' application console possède deux types de sources de données qu'elle lit: les fichiers journaux normaux (par exemple les fichiers entrants /var/log/) et les messages consignés via la fonction syslog (étendue Apple).

Si vous souhaitez surveiller un fichier journal, vous pouvez utiliser l' élément de menu Fichier > Ouvrir… (⌘O) pour afficher le fichier dans la console .
Remarque: La seule façon de supprimer un fichier de la liste des fichiers de la console semble être d’utiliser son élément de menu Fichier > Déplacer vers la corbeille (⌘⌫); préparez-vous à extraire le fichier de la corbeille si vous voulez simplement arrêter de le regarder dans la console .

Vous pouvez utiliser le programme de ligne de commande syslog pour envoyer des messages à la fonction syslog.

syslog -s Your message goes here. \(quote special chars for the shell'!)'

Cependant, sous la configuration par défaut, ce message n'apparaîtra jamais dans aucune des vues de la console car son «niveau» est trop bas pour être important. Ce filtrage initial est dû à syslogd . Il est configuré par les fichiers asl.confet syslog.conf. La configuration par défaut ne stocke pas la plupart des messages si leur niveau est trop bas (et par syslog -sdéfaut au niveau le plus bas). La console ne peut afficher que les messages qui ont été stockés par syslogd .

Vous pouvez modifier la valeur du champ Niveau en utilisant l' -loption:

syslog -s -l notice This message should show up in \"All Messages\" \
  with a Facility of syslog.

Le noticeniveau est le niveau le plus bas (par défaut) pour lequel syslogd stockera la plupart des messages.

Un message généré comme celui-ci apparaîtra dans la recherche de base de données intégrée de la console «Tous les messages»
(le fichier All Messages.aslquerydans /Applications/Utilities/Console.app/Contents/Resources/ASLQueries/le limite techniquement au message où le champ de l'installation «contient» la chaîne vide, mais cette condition est trivialement satisfaite par n'importe quelle installation valeur).

Si vous voulez que votre message apparaisse dans la console intégrée à la recherche de base de données « Messages Console » de, alors vous devez être un peu plus précis. Il affiche uniquement les messages (stockés) dont le champ Facility est égal à com.apple.console(voir le fichier Console Messages.aslquerydans /Applications/Utilities/Console.app/Contents/Resources/ASLQueries/). Vous pouvez générer de tels messages avec syslog par l' -koption pour définir le champ Facility.

syslog -s -k Facility com.apple.console \
          -k Level notice \
          -k Message 'This will show up in "Console Messages"'

Lors de l'utilisation -k, toutes les options et le message lui-même doivent être spécifiés avec des ensembles d' -k key valuearguments (nous ne pouvons pas utiliser -lpour définir le niveau). Cela signifie que nous devons mettre le message un seul argument afin qu'il puisse être la valeur du champ Message.

Chris Johnsen
la source
Alors à quoi sert la commande "logger"? Fait-il partie de syslog?
cwd
@cwd: Il utilise également la fonction syslog. Le syslog d'Apple a deux interfaces principales: syslog (3) et asl (3) . Le premier est assez standard sur la plupart des systèmes Unix-y de nos jours; l'enregistreur l' utilise. Ce dernier est une extension spécifique à Apple; la commande syslog l' utilise. La console voit les messages des deux, mais la recherche «Messages de la console» a besoin d'une valeur de facilité étendue Apple (que l' enregistreur ne peut pas faire).
Chris Johnsen
7

j'utilise:

logger Hello World

travaille toujours pour moi. vide "hello world" dans syslog, qui devrait apparaître dans console.app

peelman
la source
0

Je ne suis pas positif, mais il peut s'agir du périphérique appelé lorsque> console est entré dans le champ nom d'utilisateur de la fenêtre de connexion. Lorsque vous entrez ce qui précède, il vous vide la CLI.

iklier
la source
0

Vous pouvez écrire dans un fichier de votre choix que vous pourrez ensuite visualiser dans l'application Console.

Si vous souhaitez vous connecter pour une utilisation au niveau utilisateur:

echo "test" > /Users/$USER/Library/Logs/your_script.log

ou pour quelque chose qui est chargé pour tous les utilisateurs:

echo "test" > /Library/Logs/your_script.log
ridogi
la source