El proceso es demasiado detallado, ¿cómo evitar que inunde system.log?

Estoy usando esta aplicación (Solar.app) de Logitech para monitorear las celdas solares y las baterías desde su propio teclado solar (K750)

Un proceso es demasiado detallado y registra aprox. 400 bytes en /var/log/system.log en cada pulsación de tecla.

Estoy buscando varias soluciones para evitar que el proceso inunde system.log.

Jan  5 17:32:11 pc96 Solar Service[702]: Input data callback for device 0x6047d0
Jan  5 17:32:11 pc96 Solar Service[702]: End of data
Jan  5 17:32:11 pc96 Solar Service[702]: Event = 1 device index = 1
Jan  5 17:32:11 pc96 Solar Service[702]: Input data callback for device 0x6047d0
Jan  5 17:32:11 pc96 Solar Service[702]: End of data
Jan  5 17:32:11 pc96 Solar Service[702]: Event = 1 device index = 1

He podido encontrar una regla para hacer coincidir esos mensajes, pero:

1/

# ? [= Facility com.Logitech.Solar-Service] file solar-Service.log format=raw

Esta regla (cuando se usa sola) en realidad registra los mensajes en un archivo diferente, además de system.log. Aquí está solar-Service.log:

[Level 4] [Time 1452071909] [TimeNanoSec 309468000] [PID 702] [Sender Solar Service] [Facility com.Logitech.Solar-Service] [CFLog Local Time 2016-01-06 10:18:29.309] [CFLog Thread 160b] [ReadUID 501] [Message Event = 1 device index = 1] [UID 501] [GID 20] [SenderMachUUID C4A60E0E-5968-829C-BC55-931BBEB0A7F7] [Host pc96]
[Level 4] [Time 1452071909] [TimeNanoSec 951289000] [PID 702] [Sender Solar Service] [Facility com.Logitech.Solar-Service] [CFLog Local Time 2016-01-06 10:18:29.951] [CFLog Thread 160b] [ReadUID 501] [Message Input data callback for device 0x6047d0] [UID 501] [GID 20] [Host pc96] [SenderMachUUID C4A60E0E-5968-829C-BC55-931BBEB0A7F7]

2/

? [= Facility com.Logitech.Solar-Service] ignore

.. pero esta regla (cuando se usa sola), no ignora los mensajes.

y no entiendo por qué es así.

@klanomath Eso filtra en el nivel de error y no funcionará para filtrar un remitente o una instalación. Dejémoslos enlazados por ahora y ambos abiertos a respuestas. Ahora, si quisiera explicar cómo descifrar el nivel de registro de los mensajes de esta aplicación y luego vincularlos al otro cambio de filtrado, podría ser genial.
@bmike Hay otra pregunta y respuesta que encaja mejor (como duplicado) pero no puedo encontrarla.
Si todo lo demás falla, intente establecer el nombre de archivo para el archivo de registro en /dev/null.

Respuestas (2)

Para dar seguimiento a la respuesta de bmike, el identificador de la aplicación es com.logitech.Solar-App. Así que el código que quieres poner en tu asl.confes

? [= Facility com.logitech.Solar-App] ignore

Si desea confirmar que tengo razón sobre el identificador de su aplicación, intente:

/usr/libexec/PlistBuddy -c 'Print CFBundleIdentifier' /Applications/Solar\ App.app/Contents/Info.plist 

Y si desea que esto entre en vigencia de inmediato, puede reiniciar syslogdcon algo como esto:

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist 
sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist

Sí, hay una manera de ignorar los mensajes de un remitente/aplicación específicos en lugar de filtrar según la gravedad de todos los mensajes . Deberá sentirse mínimamente cómodo con la terminal o tener una copia de seguridad y estar dispuesto a borrar su Mac y restaurar desde la copia de seguridad en caso de que cometa errores de sintaxis o cause problemas en la terminal.

El resumen es:

  • hacer una copia de seguridad del sistema y hacer una copia de seguridad del archivo de configuración del registro del sistema
  • edite el archivo de configuración (use nanoen lugar de visi no está acostumbrado a usar vi)
  • reiniciar el proceso de registro
  • prueba

Necesita un usuario administrador para continuar:

sudo cp -p /etc/asl.conf /etc/asl.bak
sudo vi /etc/asl.conf
sudo killall HUP syslog

Aquí están las tres líneas (bueno, una línea en blanco no aparece aquí y la primera línea es un comentario, por lo que la única línea que se necesita es la que contiene Facility) que agregué para ignorar los mensajes de la tienda de aplicaciones de /var/log de mi sistema /archivo system.log:

# ignore "App Store" messages
? [= Facility com.apple.appstore] ignore

Debe reemplazar el com.apple.appstorecon los resultados de su aplicación.

mdls -name kMDItemCFBundleIdentifier /Applications/Solar\ Service.app/

Intenté hacer coincidir el nombre de la aplicación, [= Sender "App Store"] ignorepero los espacios en el nombre de la aplicación no parecían respetarse o tal vez no es así como funciona el sistema de registro. La Instalación parece coincidir con kMDItemCFBundleIdentifier en mis pruebas.

Ahora, las malas noticias. El sistema de registro es capaz de registrar miles de mensajes por segundo , por lo que ignorar los mensajes no hará mucho, pero hará que ese archivo sea más fácil de ver. Es posible que deba comunicarse con el proveedor para cambiar la aplicación, pero es de esperar que ocultar los mensajes funcione para sus necesidades, ya que eso es algo que debería poder hacer fácilmente.

Estoy trabajando en ello, pero todavía no puedo evitar que inicie sesión en system.log. ¿Hay alguna manera de hacer que los registros sean realmente más detallados para ayudarme a detectar mi error, si lo hay? A veces estoy siguiendo ese archivo... por eso estoy interesado en esto
Mira mi edición... ¿quizás sepas la respuesta?