2 votes

Le processus est trop verbeux, comment l'empêcher d'inonder le fichier system.log ?

J'utilise ceci application (Solar.app) de Logitech pour surveiller les cellules solaires et les batteries à partir de leur propre clavier solaire (K750)

Un processus est beaucoup trop verbeux et enregistre environ 400 octets dans /var/log/system.log à chaque frappe.

Je cherche différentes solutions pour empêcher le processus d'inonder le fichier 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

J'ai réussi à trouver une règle qui corresponde à ces messages, mais.. :

1/

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

Cette règle (lorsqu'elle est utilisée seule) enregistre les messages dans un fichier différent, en plus du fichier system.log . Voici le fichier 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

mais cette règle (lorsqu'elle est utilisée seule) n'ignore pas les messages.

et je ne comprends pas pourquoi il en est ainsi.

1voto

Christopher R Points 11

Pour faire suite à la réponse de bmike, l'identifiant de l'application est le suivant com.logitech.Solar-App . Ainsi, le code que vous voulez mettre dans votre asl.conf est

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

Si vous voulez confirmer que j'ai raison au sujet de l'identifiant de votre application, essayez :

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

Et si vous voulez que cela prenne effet immédiatement, vous pouvez redémarrer syslogd avec quelque chose comme ceci :

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

0voto

Oskar Points 1242

Oui - il existe un moyen d'ignorer les messages provenant d'un expéditeur ou d'une application spécifique au lieu d'ignorer les messages provenant d'une autre application ou d'un autre expéditeur. filtrage basé sur la gravité de tous les messages . Vous devrez être un minimum à l'aise avec le terminal ou avoir une sauvegarde et être prêt à effacer votre Mac et à restaurer à partir de la sauvegarde si vous faites des erreurs de syntaxe ou si vous causez des problèmes dans le terminal.

La vue d'ensemble est la suivante :

  • sauvegarder le système et faire une copie de sauvegarde du fichier de configuration du journal du système
  • éditer le fichier de configuration (utiliser nano au lieu de vi si vous n'avez pas l'habitude d'utiliser vi )
  • redémarrer le processus d'enregistrement
  • test

Vous avez besoin d'un utilisateur administrateur pour procéder :

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

Voici les trois lignes (en fait, une ligne vide ne s'affiche pas ici et la première ligne est un commentaire, de sorte que la seule ligne nécessaire est celle qui contient Facility dans celui-ci), j'ai ajouté d'ignorer les messages de l'App Store dans le fichier /var/log/system.log de mon système :

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

Vous devez remplacer le com.apple.appstore avec les résultats de votre candidature.

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

J'ai essayé de faire correspondre le nom de l'application avec [= Sender "App Store"] ignore mais les espaces dans le nom de l'application ne semblaient pas être respectés ou peut-être que ce n'est pas ainsi que fonctionne le système d'enregistrement. La facilité semble correspondre à kMDItemCFBundleIdentifier dans mes tests.

Maintenant, la mauvaise nouvelle. Le système d'enregistrement est capable d'enregistrer des milliers de messages par deuxième donc ignorer les messages ne va pas faire grand-chose si ce n'est rendre ce fichier plus facile à consulter. Vous devrez peut-être contacter le fournisseur pour faire modifier l'application, mais j'espère que le fait de cacher les messages répond à vos besoins, car c'est quelque chose que vous devriez pouvoir faire facilement.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X