2008-12-19 17 views
42

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.Lectura del resultado de syslog en una Mac

Las llamadas de registro del sistema son de la forma

syslog (LOG_WARNING, "Log message"); 

alguna idea de dónde podría encontrar mi salida del registro?

Respuesta

12

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." 

utilizar una gravedad de P ("pánico") y obtendrá una mensaje emocionante en su consola de inmediato.

+0

¿No es necesario sudo? –

+0

No en un mac. No es como la meassage pánico realmente causa un pánico: Última entrada: Lun Ene 14 22:41:57 en la consola 499 $ syslog -s P-l "Adiós mundo cruel" mensaje de difusión de [email protected] (no tty) a las 23:57 MST ... Adiós cruel mundo –

40

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

+19

Um, Console.app muestra automáticamente 'system.log', y otros archivos de registro. –

+1

¿Qué es Purdy? – Pacerier

+0

@Pacerier Creo que en este caso, "purdy" está destinado a ser una pronunciación humorística de la palabra "bonita". –

3

Sobre la base de la respuesta de Charlie, me gustaría añadir que usted debe echar un vistazo a la página de manual de syslog.conf(5) y también echar un vistazo en el archivo /etc/syslog.conf (que es donde la configuración de syslog se define por defecto y también, como yo verlo, en OS X 10.5.x).

5

Mac OS X implementa a superset of syslog's functionality. 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á los mensajes que existen en la base de datos, como los que aparecen en las consultas de la barra lateral. Hay dos consultas por defecto; uno solo muestra mensajes enviados con la función de consola (como se usa en 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 nos fijamos en /etc/asl.conf, verá esta línea:

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

Afortunadamente, en su caso, el mensaje pasará esta comprobación, ya que supera advertencia (es un número menor que) aviso.

0

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

58

/var/log/system.log

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

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

3

Quizás sea interesante tener en cuenta: Apple estaba usando un syslogd real en el pasado, pero mientras tanto todo esto cambió a ASL (Registro del sistema de Apple). 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 log.

E.g. los siguientes programas de todos los mensajes de registro generados por Safari en los últimos dos días (se paciente, puede tomar un tiempo):

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

Ver man log para todas las acciones que puede realizar, todos los parámetros se conoce y lo que los atributos puede filtrar

+0

Esta es la respuesta correcta y moderna. –

Cuestiones relacionadas