Impostazione di un registro personalizzato

5

Devo ottenere tutti i registri delle informazioni di chromium e firefox su /var/log/system.log e in un bel% di /var/log/{chromium,firefox}.log silenzioso.

Tuttavia non posso né ricordare né trovare come impostarlo in syslog.conf . Come potrei fare per farlo?

EDIT: ho cercato il file asl.conf per il demone di registrazione asl. Questo sembra avere qualcosa a che fare con ciò che voglio, anche se passare da syslog a un formato di log binario è direttamente contro il senso.

EDIT: per essere molto chiari si può usare syslog per tagliare in modo dinamico i log. Apple sta passando da syslog al log del sistema Apple. Quindi l'approccio di grep riguarda solo i file depreduti /var/log syslogd.

Passare a syslog-ng e accedere a sqlite sembrerebbe essere più semplice, ma chi lo sa? Sono sicuro che il formato proprietario è la strada da percorrere.

Nota che

syslog(1) 

è lo strumento da riga di comando per il database ASL.

syslog(3) 

è la C api del daemon syslogd. La sostituzione ASL per quanto sopra è

asl(3)

Ora,

syslogd(8) 

ha 2 moduli, uno scrive nei file definiti in

syslog.conf(5)

e una scrittura sul log del sistema Apple, come definito in

asl.conf(5) 

ASL sembra essere il futuro. Syslogd è configurato sia da syslog.conf sia da asl.conf .

    
posta chiggsy 18.01.2011 - 04:42
fonte

2 risposte

4

La situazione è la seguente: le applicazioni possono utilizzare l'API syslog (3) e l'API asl (3) per registrare i messaggi, altri dati registrati possono provenire dal kernel o dalla rete. Tutti questi messaggi sono consegnati al demone syslog: syslogd (8). Il syslogd ora emette i messaggi di log entrambi il modo BSD (scrive cose in vari file di log di base come / var / log) e in un archivio di messaggi log unificato (/ var / log / asl.log).

Se vuoi che determinati messaggi di log non compaiano nel tuo log file (ad esempio leggi i log come system.log selezionandoli in Console.app), dovrai configurare syslog.conf (5) come chiggsy ha detto . Se vuoi che i messaggi non vengano memorizzati nel database di ASL, dovrai configurare asl.conf (5).

Se, ad esempio, non desideri più che i messaggi di log di Bonjour (mDNSResponders) vengano archiviati nel db ASL, dovrai aggiungere la seguente riga a /etc/asl.conf:

? [= Sender mDNSResponder] ignore

... e quindi "gentilmente" riavviare il syslogd di:

sudo killall -HUP syslogd 

Ora i messaggi di mDNSResponder non verranno più visualizzati quando entrerai in "tutti i messaggi" di Console.app, ma esistono ancora all'interno dei tuoi file di registro.

Infine, se chiami syslog (1) dalla riga di comando, agisce come un buon frontend per interrogare il db ASL - potresti per esempio chiedergli di mostrare tutti i messaggi dall'avviatore di Time Machine Backup che sono stati registrati nel ultime due ore eseguendo:

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

... che spiega perché l'ASL db è comodo: puoi cercare i file di registro contemporaneamente in "tutti i file di registro".

    
risposta data 10.02.2011 - 00:30
fonte
0

Ci sono 2 risposte in pratica, se voglio cambiare il percorso del file di registrazione.

Syslog:

La soluzione è non legge la pagina man di syslog.conf di OS X. Leggi il FreeBSD uno. Syslog funziona ancora in questo modo quando si usa il suo modulo 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
!*

Questo rimuove il log ridicolo di Chromium da /var/log/system.log e lo inserisce in stfu.log.

    
risposta data 09.02.2011 - 23:25
fonte

Leggi altre domande sui tag