Wie kann ich mich unter Mac OS X vom Terminal aus bei Console.app anmelden?

8

Ich habe die Verwendung /dev/consolein mehreren Skripten für Mac OS X gesehen, bin mir aber nicht sicher, wie es verwendet wird. Ich habe Console.app überprüft und die Ergebnisse meines Testbefehls nicht gesehen:

Echotest> / dev / console

Wenn es dort ausgedruckt wird, wohin geht es oder wie würden Sie es verwenden?

cwd
quelle
@ Qosmo. Diese Frage ist zu 100% für Super User gültig und es besteht keine Notwendigkeit oder kein Grund, sie zu migrieren.
BinaryMisfit
Gültig zu sein bedeutet nicht, dass es dort besser serviert wird? Warum wurde es geschaffen? Wie auch immer, es ist nur ein Vorschlag ...
Brave Newbie

Antworten:

7

Das /dev/consoleGerät ist nicht speziell mit der Konsolenanwendung verbunden .

In Mac OS X 10.6 verfügt die Konsolenanwendung über zwei Arten von Datenquellen, die sie liest: normale Protokolldateien (z. B. die Dateien in /var/log/) und Nachrichten, die über die (von Apple erweiterte) Syslog-Funktion protokolliert werden.

Wenn Sie eine Protokolldatei haben, die Sie überwachen möchten, können Sie die Datei in der Konsole über den Menüpunkt Datei > Öffnen… (⌘O) anzeigen . Hinweis: Die einzige Möglichkeit, eine Datei aus der Dateiliste der Konsole zu entfernen, scheint darin zu bestehen, den Menüpunkt Datei > In den Papierkorb verschieben (⌘⌫) zu verwenden. Seien Sie bereit, die Datei aus dem Papierkorb zu ziehen, wenn Sie sie nicht mehr in der Konsole ansehen möchten .

Sie können das Syslog- Befehlszeilenprogramm verwenden, um Nachrichten an die Syslog-Funktion zu senden.

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

In der Standardkonfiguration wird diese Meldung jedoch in keiner der Konsolenansichten angezeigt, da die "Ebene" zu niedrig ist, um wichtig zu sein. Diese anfängliche Filterung ist auf syslogd zurückzuführen . Es wird von den asl.confund syslog.confDateien konfiguriert . In der Standardkonfiguration werden die meisten Nachrichten nicht gespeichert, wenn ihre Ebene zu niedrig ist (und syslog -sstandardmäßig die niedrigste Ebene verwendet wird). Die Konsole kann nur Nachrichten anzeigen, die von syslogd gespeichert wurden .

Sie können den Wert des Felds Ebene ändern, indem Sie die folgende -lOption verwenden:

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

Die noticeEbene ist die (Standard-) niedrigste Ebene, für die syslogd die meisten Nachrichten speichert.

Eine Meldung wie diese erzeugt wird angezeigt Console ‚s integrierte‚All messsages‘Datenbanksuche
(die Datei All Messages.aslqueryin /Applications/Utilities/Console.app/Contents/Resources/ASLQueries/technisch begrenzt sie auf die Nachricht , wo die Einrichtung Feld die leere Zeichenfolge‚enthält‘, aber diese Bedingung trivialerweise durch eine Einrichtung erfüllt ist Wert).

Wenn Sie möchten, dass Ihre Nachricht in der in der Konsole integrierten Datenbanksuche "Konsolennachrichten" angezeigt wird, müssen Sie etwas spezifischer sein. Es werden nur (gespeicherte) Nachrichten angezeigt, deren Facility-Feld gleich ist com.apple.console(siehe Datei Console Messages.aslqueryin /Applications/Utilities/Console.app/Contents/Resources/ASLQueries/). Sie können solche Nachrichten mit Syslog generieren, indem Sie das -kFeld Einrichtung festlegen.

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

Bei der Verwendung -kmüssen alle Optionen und die Nachricht selbst mit einer Reihe von -k key valueArgumenten angegeben werden (wir können -ldie Ebene nicht festlegen). Dies bedeutet, dass wir der Nachricht ein einzelnes Argument geben müssen, damit es der Wert des Nachrichtenfelds sein kann.

Chris Johnsen
quelle
Wofür wird der Befehl "logger" verwendet? Ist es Teil von Syslog?
CWD
@cwd: Es wird auch die Syslog-Funktion verwendet. Apples Syslog verfügt über zwei Hauptschnittstellen: Syslog (3) und ASL (3) . Ersteres ist heutzutage auf den meisten Unix-y-Systemen ziemlich Standard. Logger benutzt es. Letzteres ist eine Apple-spezifische Erweiterung. Der Befehl syslog verwendet es. Die Konsole sieht Nachrichten von beiden, aber für die Suche nach "Konsolennachrichten" ist ein von Apple erweiterter Facility-Wert erforderlich (den der Logger nicht erstellen kann).
Chris Johnsen
7

ich benutze:

logger Hello World

arbeitet immer für mich Dumps "Hallo Welt" in Syslog, das in console.app angezeigt werden sollte

Peelman
quelle
0

Ich bin nicht sicher, aber es kann das Gerät sein, das aufgerufen wird, wenn> console in das Feld Benutzername des Anmeldefensters eingegeben wird. Wenn Sie oben eingeben, wird die CLI ausgegeben.

iklier
quelle
0

Sie können in eine Datei Ihrer Wahl schreiben, die Sie dann in der Konsolenanwendung anzeigen können.

Wenn Sie eine Protokollierung auf Benutzerebene wünschen, verwenden Sie:

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

oder für etwas, das für alle Benutzer geladen ist:

echo "test" > /Library/Logs/your_script.log
Ridogi
quelle