Ich versuche, Ereignisse / Prüfpunkte aus meinem Shell-Skript mit zu protokollieren logger
.
Verwendung logger
oder syslog
Dienstprogramm in OS X (Version 10.12 (16A323)) . Ich habe versucht
logger "Hello world"
und /var/log/system.log
mit der Konsolen-App überprüft , wurde der folgende Protokolleintrag erstellt
Fehler beim Ernten von Zeichenfolgen für Binärdateien mit dem Namen '–Xó ^ H'
Wie logger
in OS X verwenden? Muss etwas angegeben werden, um einen Eintrag zum OS X-Systemprotokoll zu erstellen / hinzuzufügen?
Hello World
in irgendeiner/var/log/*.log
Datei. Das Verhalten, das @SG_ sieht, ist auf meinem Mac unter macOS 10.12 reproduzierbar. Druckt außerdemlogger -s 'Hello World'
korrekt auf der Konsole, jedoch nicht in einer Protokolldatei auf der Festplatte.Antworten:
Weil sich Apples Protokollierungssystem in macOS sierra geändert hat. Sie wechseln von der Apple System Log-Funktion zur einheitlichen Protokollierung.
Hier ist ein Link zur Entwicklerdokumentation.
Im Folgenden wird das neue einheitliche Protokoll nach dem Text "Message4me" gefiltert.
=======
Wenn Sie --info hinzufügen, wird die Ereignismeldung selbst auch in der Ausgabe angezeigt.
In früheren Betriebssystemversionen wurde der Befehl logger an die Datei /var/log/system.log gesendet, wenn die Priorität hoch genug war (z. B. mithilfe der Warnung -p), sowie an die Syslog-Datenbank. In Sierra wird das system.log ohnehin nicht geschrieben, wenn der Logger mit -p alert -not in 10.12.1 verwendet wird. Dies könnte ein Fehler sein.
Sie können den Logger weiterhin zum Senden an das neue Protokollierungssystem verwenden, müssen jedoch die Konsolen-App oder das CLI-Protokolldienstprogramm oder die neue API verwenden, um die Ergebnisse anzuzeigen.
quelle
Ich habe dieses Problem gelöst, indem ich ein Skript verwendet habe, das Netcat verwendet, um alle 10 Minuten bestimmte Protokolle von einem Launchdaemon zu senden. Nach Bedarf bearbeiten.
quelle
Dies ist keine echte Antwort, sondern eine Problemumgehung und zu lang für einen Kommentar.
Ich hatte das gleiche Problem in Sierra, als ich versuchte, ein Homebrew-Update-Shell-Skript mit Logger- Befehlen zu protokollieren (was in El Capitan funktionierte). Ich musste den Logger verlassen und einfach Echo, Ausgabeverleitung und eine neue Protokolldatei verwenden:
quelle