En Mac OS X, ¿cómo puedo iniciar sesión en Console.app desde el terminal?

8

He visto el uso de /dev/consolevarios scripts para Mac OSX, pero no estoy seguro de cómo se usa. Verifiqué Console.app y no vi los resultados de mi comando de prueba:

prueba de eco> / dev / console

impreso allí, entonces, ¿a dónde va, o cómo lo usarías?

cwd
fuente
@Qosmo. Esta pregunta es 100% válida para Superusuario y no hay necesidad ni razón para migrarla.
BinaryMisfit
¿Ser válido no implica que sería mejor servirlo allí? ¿Por qué fue creado? De todos modos, es solo una sugerencia ...
Brave Newbie

Respuestas:

7

El /dev/consoledispositivo no está especialmente relacionado con la aplicación Consola .

En Mac OS X 10.6, la aplicación Consola tiene dos tipos de fuentes de datos que lee: archivos de registro normales (por ejemplo, los archivos en /var/log/) y mensajes registrados a través de la función de registro del sistema (extendido por Apple).

Si tiene un archivo de registro que desea monitorear, puede usar el elemento de menú Archivo > Abrir ... (⌘O) para ver el archivo en la Consola .
Nota: La única forma de eliminar un archivo de la lista de archivos de la consola parece ser usar su elemento de menú Archivo > Mover a la papelera (⌘⌫); prepárate para sacar el archivo de la Papelera si solo quieres dejar de verlo en la Consola .

Puede usar el programa de línea de comandos syslog para enviar mensajes a la instalación syslog.

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

Sin embargo, bajo la configuración predeterminada, este mensaje nunca aparecerá en ninguna de las vistas de la Consola porque su "nivel" es demasiado bajo para ser importante. Este filtrado inicial se debe a syslogd . Está configurado por los archivos asl.confy syslog.conf. La configuración predeterminada no almacena la mayoría de los mensajes si su Nivel es demasiado bajo (y por syslog -sdefecto es el nivel más bajo). La consola solo puede mostrar mensajes que han sido almacenados por syslogd .

Puede cambiar el valor del campo Nivel utilizando la -lopción:

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

El noticenivel es el nivel más bajo (predeterminado) para el que syslogd almacenará la mayoría de los mensajes.

Un mensaje generado como esto se mostrará en la Consola ‘s built-in‘Todos messsages’búsqueda de base de datos
(el archivo All Messages.aslqueryde /Applications/Utilities/Console.app/Contents/Resources/ASLQueries/vista técnico limita a mensajes donde el campo Instalación‘contiene’la cadena vacía, pero esta condición es trivialmente satisfecha por cualquiera de las instituciones valor).

Si desea que el mensaje que aparezca en la consola ‘s función de búsqueda de base de datos‘de la consola de mensajes’, entonces usted debe ser un poco más específico. Solo muestra mensajes (almacenados) que tienen un campo Facilidad que es igual com.apple.console(ver el archivo Console Messages.aslqueryen /Applications/Utilities/Console.app/Contents/Resources/ASLQueries/). Puede generar dichos mensajes con syslog mediante la -kopción de establecer el campo Facilidad.

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

Cuando se usa -k, todas las opciones y el mensaje en sí deben especificarse con conjuntos de -k key valueargumentos (no podemos usar -lpara establecer el nivel). Esto significa que tenemos que poner el mensaje en un solo argumento para que pueda ser el valor del campo Mensaje.

Chris Johnsen
fuente
Entonces, ¿para qué se usa el comando "registrador"? ¿Es parte del syslog?
cwd
@cwd: también utiliza la función syslog. El syslog de Apple tiene dos interfaces principales: syslog (3) y asl (3) . El primero es bastante estándar en la mayoría de los sistemas Unix-y en estos días; el registrador lo usa. Esta última es una extensión específica de Apple; el comando syslog lo usa. La consola ve mensajes de ambos, pero la búsqueda de "Mensajes de la consola" necesita un valor de Instalación extendida por Apple (que el registrador no puede hacer).
Chris Johnsen
7

yo suelo:

logger Hello World

siempre funciona para mi vuelca "hello world" en syslog, que debería aparecer en console.app

pelador
fuente
0

No soy positivo, pero puede ser el dispositivo llamado cuando> consola se ingresa en el campo de nombre de usuario de la ventana de inicio de sesión. Cuando ingresa lo anterior, le devuelve la CLI.

iklier
fuente
0

Puede escribir en un archivo de su elección que luego podrá ver en la aplicación Consola.

Si desea iniciar sesión para uso de nivel de usuario:

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

o para algo que se carga para todos los usuarios:

echo "test" > /Library/Logs/your_script.log
ridogi
fuente