Configuración de un registro personalizado

Tengo que obtener toda la información de Chrome y /var/log/system.logFirefox /var/log/{chromium,firefox}.log.

Sin embargo, no puedo recordar ni encontrar cómo configurar eso en syslog.conf. ¿Cómo haría para hacer eso?

EDITAR: He estado mirando el asl.confarchivo para el demonio de registro de ASL. Esto parece tener algo que ver con lo que quiero, aunque pasar de syslog a un formato de registro binario va directamente en contra del sentido.

EDITAR: para ser muy claro, se puede usar syslog para dividir dinámicamente los registros. Apple está haciendo la transición de syslog al registro del sistema de Apple. Entonces, el enfoque grep solo se ocupa de los /var/logarchivos syslogd en desuso.

Cambiar a syslog-ng e iniciar sesión en sqlite parecería más fácil, pero ¿quién sabe? Estoy seguro de que el formato propietario es el camino a seguir.

Tenga en cuenta que

syslog(1) 

es la herramienta de línea de comandos para la base de datos ASL.

syslog(3) 

es la API de CAP para el demonio syslogd. El reemplazo de ASL para lo anterior es

asl(3)

Ahora,

syslogd(8) 

tiene 2 módulos, uno escribiendo en los archivos definidos en

syslog.conf(5)

y una escritura en el registro del sistema de Apple, como se define en

asl.conf(5) 

ASL parece ser el futuro. Syslogd está configurado por ambos syslog.confy asl.conf.

Respuestas (2)

La situación es así: las aplicaciones pueden usar la API syslog(3) y la API asl(3) para registrar mensajes, otros datos registrados pueden provenir del kernel o de la red. Todos estos mensajes se entregan al demonio syslog: syslogd(8). El syslogd ahora genera mensajes de registro tanto de la manera BSD (escribe cosas en varios archivos de registro básicos como /var/log) como en un almacén de mensajes de registro unificado (/var/log/asl.log).

Si desea que ciertos mensajes de registro no aparezcan en sus archivos de registro (p. ej., lee registros como system.log seleccionándolos en Console.app), deberá configurar syslog.conf(5) como dijo chiggsy . Si desea que los mensajes no se almacenen en la base de datos de asl, deberá configurar asl.conf(5).

Si, por ejemplo, ya no desea que los mensajes de registro de Bonjour (mDNSResponders) se almacenen en la base de datos de ASL, deberá agregar la siguiente línea a /etc/asl.conf:

? [= Sender mDNSResponder] ignore

… y luego "suavemente" reinicie el syslogd por:

sudo killall -HUP syslogd 

Ahora, los mensajes de mDNSResponder ya no aparecerán cuando acceda a "todos los mensajes" de Console.app, pero seguirán existiendo en sus archivos de registro.

Por último, si llama a syslog(1) desde la línea de comandos, actúa como una buena interfaz para consultar la base de datos de ASL; por ejemplo, podría pedirle que muestre todos los mensajes del iniciador de Time Machine Backup que se registraron en las últimas dos horas. mediante la ejecución:

syslog -k Facility -k Sender com.apple.backupd-auto -k Time ge −2h

…lo que explica por qué la base de datos ASL es útil: puede buscar archivos de registro simultáneamente en "todos los archivos de registro".

Entonces, ¿cómo averiguas quién se supone que es el "Remitente"? Por ejemplo, quiero ver cosas de sshd, probé "sshd" y "com.openssh.sshd" y no devolví información que claramente está en system.log
@Michael buena pregunta! De hecho, no estoy seguro de por qué syslogse comporta de manera diferente para sshd (y aparentemente vnc, ftp, así que envié esto como una nueva pregunta aquí .

Hay 2 respuestas en la práctica, si quiero cambiar la ubicación del archivo de registro.

Registro del sistema:

La solución es no leer la página de manual de OS X syslog.conf. Lee el de FreeBSD . Syslog todavía funciona de esta manera cuando se usa su módulo BSD.

!-org.chromium.Chromium

*.notice;authpriv,remoteauth,ftp,install,internal.none  /var/log/system.log
kern.*                          /var/log/kernel.log

!*

!org.chromium.Chromium
*.*                                                 /var/log/stfu.log
!*

Esto elimina el ridículamente hablador registro de chromium de /var/log/system.log y lo coloca en stfu.log.