Su Mac OS X come posso accedere a Console.app dal terminale?


8

Ho visto l'uso /dev/consolein diversi script per Mac OSX ma non sono sicuro di come venga utilizzato. Ho controllato Console.app e non ho visto i risultati del mio comando di test:

test echo> / dev / console

essere stampato là fuori, quindi dove va o come lo useresti?


@Qosmo. Questa domanda è valida al 100% per Super User e non è necessario o motivo per migrare.
BinaryMisfit,

Essere validi non implica che sarebbe meglio servito lì? Perché è stato creato? Comunque è solo un suggerimento ...
Brave Newbie,

Risposte:


7

Il /dev/consoledispositivo non è particolarmente correlato all'applicazione Console .

In Mac OS X 10.6, l' applicazione Console ha due tipi di origini dati che legge: normali file di registro (ad esempio i file in /var/log/) e messaggi registrati tramite la funzione syslog (estesa Apple).

Se si dispone di un file di registro che si desidera monitorare, è possibile utilizzare la voce di menu File > Apri ... (⌘O) per visualizzare il file in Console .
Nota: l'unico modo per rimuovere un file dall'elenco di file della Console sembra essere quello di utilizzare la voce di menu File > Sposta nel cestino (⌘⌫); preparati a estrarre il file dal Cestino se vuoi semplicemente smettere di guardarlo nella Console .

È possibile utilizzare il programma da riga di comando syslog per inviare messaggi alla funzione syslog.

syslog -s Your message goes here. \(quote special chars for the shell'!)'

Tuttavia, con la configurazione predefinita, questo messaggio non verrà mai visualizzato in nessuna delle viste della Console perché il suo "livello" è troppo basso per essere importante. Questo filtro iniziale è dovuto a syslogd . È configurato dai file asl.confe syslog.conf. La configurazione predefinita non memorizza la maggior parte dei messaggi se il loro Livello è troppo basso (e syslog -spassa automaticamente al livello più basso). La console può mostrare solo i messaggi che sono stati memorizzati da syslogd .

È possibile modificare il valore del campo Livello utilizzando l' -lopzione:

syslog -s -l notice This message should show up in \"All Messages\" \
  with a Facility of syslog.

Il noticelivello è il livello più basso (predefinito) per il quale syslogd memorizzerà la maggior parte dei messaggi.

Un messaggio generato in questo modo comparirà nella console ‘s built-in‘Tutti messsages’ricerca del database
(il file All Messages.aslquerynel /Applications/Utilities/Console.app/Contents/Resources/ASLQueries/tecnicamente limita al messaggio in cui il campo Fondo‘contiene’la stringa vuota, ma questa condizione è banalmente soddisfatta da qualsiasi struttura valore).

Se si desidera che il messaggio appare in console ‘s built-in‘Console Messaggi’ricerca del database, allora si deve essere un po 'più specifico. Mostra solo i messaggi (memorizzati) che hanno un campo Facility uguale a com.apple.console(vedi il file Console Messages.aslqueryin /Applications/Utilities/Console.app/Contents/Resources/ASLQueries/). È possibile generare tali messaggi con syslog dalla -kpossibilità di impostare il campo Fondo.

syslog -s -k Facility com.apple.console \
          -k Level notice \
          -k Message 'This will show up in "Console Messages"'

Durante l'utilizzo -k, tutte le opzioni e il messaggio stesso devono essere specificati con set di -k key valueargomenti (non è possibile utilizzare -lper impostare il livello). Ciò significa che dobbiamo inserire nel messaggio un singolo argomento in modo che possa essere il valore del campo Messaggio.


Quindi a cosa serve il comando "logger"? Fa parte di syslog?
Cwd,

@cwd: utilizza anche la funzione syslog. Il syslog di Apple ha due interfacce principali: syslog (3) e asl (3) . Il primo è abbastanza standard sulla maggior parte dei sistemi Unix-y al giorno d'oggi; il logger lo usa. Quest'ultima è un'estensione specifica per Apple; il comando syslog lo usa. La console vede i messaggi da entrambi, ma la ricerca di "Messaggi della console" richiede un valore di funzionalità esteso da Apple (che il logger non può effettuare).
Chris Johnsen,

7

Io uso:

logger Hello World

funziona sempre per me. scarica "ciao mondo" su syslog, che dovrebbe apparire in console.app


0

Non sono positivo, ma potrebbe essere il dispositivo chiamato quando> console viene immessa nel campo nome utente della finestra di accesso. Quando si immette quanto sopra, si scarica l'interfaccia della riga di comando.


0

È possibile scrivere in un file di propria scelta che è possibile visualizzare nell'applicazione Console.

Se si desidera effettuare la registrazione a livello di utente, utilizzare:

echo "test" > /Users/$USER/Library/Logs/your_script.log

o per qualcosa che viene caricato per tutti gli utenti:

echo "test" > /Library/Logs/your_script.log
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.