macos syslog

macos - Lectura de salida syslog en una Mac



(7)

Tengo un programa que fue escrito para Linux y estoy tratando de compilarlo y ejecutarlo en mi máquina MacOS 10.5. El programa se compila y se ejecuta sin problemas, sin embargo, realiza muchas llamadas a syslog. Sé que syslogd se está ejecutando en mi Mac, sin embargo, parece que no puedo encontrar dónde se envían mis llamadas syslog.

Las llamadas syslog son de la forma

syslog (LOG_WARNING, "Log message");

¿Alguna idea de dónde podría encontrar mi resultado de registro?


En caso de duda, siempre hay man syslog .

Puede encontrar sus mensajes en /var/log/syslog ; mi máquina está configurada de fábrica para incluir solo mensajes de alto nivel, por lo que es posible que necesite tener su configuración.

También puede leer los mensajes a través de syslog (1) o crear un mensaje de prueba con un comando como

$ syslog -s -l INFO "Hello, world."

use una severidad de P ("pánico") y obtendrá un mensaje emocionante en su consola inmediatamente.


Sobre la base de la respuesta de Charlie, me gustaría añadir que debe echar un vistazo a la página de syslog.conf(5) de syslog.conf(5) y también echar un vistazo al archivo /etc/syslog.conf (que es donde la configuración del syslog está definida por predeterminado y también, como lo veo, en OS X 10.5.x).


También puede usar el programa Console.app para ver los archivos de registro. Es purdy


Compruebe si hay una llamada para openlog en algún lugar del programa. Después de una llamada a openlog , syslog guardará su salida en ese archivo de registro en lugar de la ubicación predeterminada.


Mac OS X implementa un superconjunto de la funcionalidad de syslog . Todo el syslog está allí, pero como parte de ASL.

La consola, mencionada por Matthew Schinckel en su respuesta, es la GUI en ASL. Le mostrará cualquier mensaje que exista en la base de datos, tal como lo obtuvieron las consultas que figuran en la barra lateral. Hay dos consultas por defecto; uno solo muestra los mensajes enviados con la función de consola (como lo usa NSLog , entre otras cosas), mientras que el otro muestra todos los mensajes de registro. Verifique la consulta de todos los mensajes; probablemente encuentres tu mensaje allí.

Ese "todo" viene con un asterisco. Si miras en /etc/asl.conf, verás esta línea:

# save everything from emergency to notice ? [<= Level notice] store

Afortunadamente, en su caso, el mensaje pasará este control, ya que la advertencia excede el límite (es un número menor que) aviso.


/var/log/system.log

Puede monitorearlo fácilmente usando tail -f /var/log/system.log

Ver también el "registrador" ( man logger ) y "syslog" ( man syslog ).


Tal vez sea interesante observar: Apple estaba usando un syslogd real en el pasado, pero mientras tanto, todo esto cambió a ASL (Apple System Log). El comando syslog todavía está disponible, pero solo accederá a este registro. Si desea acceder a todos los mensajes de registro de ASL en todos los archivos de registro configurados, use el comando de log .

Por ejemplo, a continuación se muestran todos los mensajes de registro producidos por Safari en los últimos dos días (sea paciente, puede tomar un tiempo):

log show --predicate ''process == "Safari"'' --last 2d

Vea el man log para ver todas las acciones que puede realizar, todos los parámetros que conoce y los atributos que puede filtrar.