Mac ASL: Protokollnachrichten meiner Anwendung können nicht angezeigt werden

1475
trojanfoe

Ich habe gerade die ASL-Protokollierungsunterstützung zu meiner Anwendung hinzugefügt (eine kompilierte Binärdatei), aber ich sehe keine Protokolleinträge, die Console.app verwenden. Ich logge mit der Einrichtung 'com.mydomain.myapp' (das ist nicht der tatsächliche Wert) und habe einen Eintrag hinzugefügt /private/etc/asl.conf, um syslogd anzuweisen, Einträge in dieser Einrichtung 'zu speichern' (mit einem beliebigen Level):

? [= Facility com.mydomain.myapp] store 

Ich hatte syslogd ohne Erfolg, also habe ich mein MacBook Pro neu gestartet, was auch keinen Unterschied machte.

Ich weiß, dass meine Anwendung in Ordnung ist, da ich ASL_OPT_STDERRbeim Aufruf die Option hinzugefügt habe asl_open()und die Einträge auf stderr sehen kann. Ich habe auch die Filter so eingestellt, asl_set_filter()dass die entsprechenden Ebenen an den Server gesendet werden können.

BEARBEITEN: Ich habe diesen Artikel gesehen, der eine alternative Methode zum Festlegen des von syslogd verwendeten 'cutoff'-Werts bietet, der jedoch auch nicht funktioniert (versucht sowohl temporäre als auch permanente Korrekturen):

Der Grund, warum Sie keine Info- oder Debug-Meldungen sehen, ist, dass der syslogd-Dämon sie filtert. Wenn Sie die Filterung in syslogd ändern möchten, können Sie die Startoptionen in / System / Library / LaunchDaemons / com.apple.syslogd.plist ändern (fügen Sie -c und
-7 im Array ProgramArguments hinzu ). Das macht die Änderung "dauerhaft" (bis Sie die Plist erneut ändern). Siehe die Manpage syslogd (8).

Alternativ können Sie den syslogd-Datenbankfilterwert mit dem Befehlszeilenprogramm "syslog" vorübergehend ändern. Sudo syslog -c syslogd -d

3

1 Antwort auf die Frage

0
Wilersh

Sie sagen nicht, ob diese App ein Shell-Skript oder eine kompilierte Binärdatei ist. Bei einem Shell-Skript habe ich immer den Logger-Befehl verwendet, um Protokolle in Syslog zu aktualisieren. Wenn Sie Xcode verwenden und ein kompiliertes Cocoa-Projekt erstellen, erhalten Sie möglicherweise bessere Unterstützung bei der Veröffentlichung von StackOverFlow.

Es ist eine kompilierte Binärdatei (ohne GUI). Ich halte SO nicht für angemessen und bin ziemlich sicher, dass es sich nicht um einen Programmierfehler handelt, sondern eher um einen Systemfehler. trojanfoe vor 13 Jahren 0