Comando Linux logger
logger es una herramienta de línea de comandos simple pero potente en el sistema Linux, utilizada para agregar entradas de registro al registro del sistema (syslog). Permite a los usuarios y programas de script escribir mensajes personalizados en los archivos de registro del sistema, siendo una herramienta importante para la administración del sistema y la resolución de problemas.
Escenarios de aplicación típicos:
- Registrar operaciones clave durante la ejecución de scripts
- Seguimiento del estado de tareas de mantenimiento del sistema
- Registro de aplicaciones personalizadas
- Registro remoto (con servidor syslog)
Sintaxis básica y parámetros
El formato de sintaxis básica del comando logger es el siguiente:
logger [选项] [消息]
Opciones de parámetros comunes
| Opción | Descripción |
|---|---|
-p, --priority <优先级> |
Especificar la prioridad del registro (facility.level) |
-t, --tag <标签> |
Marcar entradas de registro con una etiqueta especificada |
-i, --id |
Incluir el ID del proceso en cada línea de registro |
-f, --file <文件> |
Leer contenido de registro desde un archivo especificado |
-s, --stderr |
Enviar el registro también al error estándar (stderr) |
-n, --server <主机> |
Enviar el registro a un servidor syslog remoto |
-P, --port <端口> |
Especificar el puerto del servidor syslog remoto |
-u, --socket <套接字> |
Especificar un socket de dominio Unix en lugar del dispositivo predeterminado |
-d, --udp |
Usar protocolo UDP para enviar registros (predeterminado) |
-T, --tcp |
Usar protocolo TCP para enviar registros |
-h, --help |
Mostrar información de ayuda |
-V, --version |
Mostrar información de versión |
Explicación detallada de prioridad (Priority)
La prioridad del registro se compone de dos partes: facility (instalación) y level (nivel), con el formato:facility.level。
Tipos de instalación (Facility)
| Código de instalación | Descripción |
|---|---|
| auth | Mensajes de seguridad/autorización |
| authpriv | Mensajes de autorización privados |
| cron | Daemon de tareas programadas (cron) |
| daemon | Daemon del sistema |
| kern | Mensajes del kernel |
| lpr | Sistema de impresión |
| Sistema de correo | |
| news | Sistema de noticias |
| syslog | Mensajes internos de syslogd |
| user | Mensajes a nivel de usuario (predeterminado) |
| local0-7 | Uso local personalizado |
Niveles de registro (Level)
| Código de nivel | Descripción | Valor numérico |
|---|---|---|
| emerg | Sistema no disponible | 0 |
| alert | Se requiere acción inmediata | 1 |
| crit | Condición crítica | 2 |
| err | Condición de error | 3 |
| warning | Condición de advertencia | 4 |
| notice | Situación normal pero importante | 5 |
| info | Mensaje informativo | 6 |
| debug | Mensaje de nivel de depuración | 7 |
Ejemplos prácticos
Ejemplos de uso básico
-
Registro simple:
logger "系统备份任务开始执行"
Esto registrará un mensaje en el registro del sistema, usando la prioridad user.notice por defecto.
-
Registro con etiqueta:
logger -t BACKUP "数据库备份完成"
La entrada de registro se mostrará como:
BACKUP: 数据库备份完成 -
Especificar prioridad:
logger -p local0.notice "自定义应用程序启动"
Ejemplos de uso avanzado
-
Leer contenido de registro desde un archivo:
logger -f /var/log/myapp.log
-
Registrar el estado de ejecución de scripts:
#!/bin/bash logger -t SCRIPT -p user.info "脚本开始执行" # 执行任务... if [ $? -eq 0 ]; then logger -t SCRIPT -p user.info "任务执行成功" else logger -t SCRIPT -p user.err "任务执行失败" fi -
Registro remoto:
logger -n 192.168.1.100 -P 514 "发送到远程服务器的日志"
-
Salida simultánea a la terminal y al registro:
logger -s "这条消息会同时出现在终端和日志中"
Visualización y gestión de registros
Después de registrar los logs, puede usar los siguientes comandos para verlos:
-
Ver registros del sistema:
journalctl # sistemas con systemd o tail -f /var/log/syslog # sistemas tradicionales -
Filtrar registros por etiqueta específica:
journalctl -t BACKUP
-
Ver registros por tiempo:
journalctl --since "2023-01-01" --until "2023-01-02"
Mejores prácticas y precauciones
-
Especificación de etiquetas de registro:
- Usar etiquetas significativas (como nombre de aplicación o script)
- Mantener la consistencia de las etiquetas para facilitar el filtrado y análisis posterior
-
Selección de prioridad:
- Usar diferentes niveles de manera razonable, evitando que todos los registros usen el mismo nivel
- Usar warning o niveles superiores para operaciones críticas
-
Recomendaciones sobre el contenido del registro:
- Incluir suficiente información de contexto
- Evitar registrar información sensible (como contraseñas)
- Mantener los registros concisos pero con información completa
-
Consideraciones de rendimiento:
- El registro de logs de alta frecuencia puede afectar el rendimiento
- Considerar usar búfer o métodos asíncronos para registrar grandes volúmenes de logs
-
Rotación de registros:
- Limpiar periódicamente los registros antiguos
- Configurar logrotate para gestionar el tamaño de los archivos de registro
Preguntas frecuentes
Q1: ¿Por qué mis registros no aparecen en /var/log/syslog?
A1: Esto puede deberse a:
- La facility que utiliza está configurada para escribir en otros archivos
- El nivel de registro es inferior al nivel mínimo de registro configurado por el sistema
- El sistema usa journald en lugar del syslog tradicional
Q2: ¿Cómo determinar qué sistema de registro utiliza mi sistema?
A2: Ejecute el siguiente comando para comprobarlo:
ps aux | grep -E "syslog|journald"
Q3: ¿Se pueden usar varias opciones a la vez?
A3: Sí, por ejemplo:
logger -t MYAPP -p local0.err -i "关键错误发生"
Q4: ¿Cómo probar la configuración de un servidor de registros remoto?
A4: Use logger para enviar un mensaje de prueba:
logger -n 远程服务器IP -P 端口 "测试消息"
Después de estudiar este artículo, debería haber dominado los usos principales del comando logger. Esta herramienta aparentemente simple es muy útil en la administración real de sistemas y el desarrollo de aplicaciones, y puede ayudarle a establecer un mecanismo completo de registro de logs. Se recomienda practicar más en el trabajo real y utilizar flexiblemente varias opciones y parámetros según las necesidades específicas.
Otras extensiones
Compendio de comandos Linux