Comando Linux logger

Linux 命令大全Compendio de comandos Linux


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
mail 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

  1. Registro simple:

    logger "系统备份任务开始执行"

    Esto registrará un mensaje en el registro del sistema, usando la prioridad user.notice por defecto.

  2. Registro con etiqueta:

    logger -t BACKUP "数据库备份完成"

    La entrada de registro se mostrará como:BACKUP: 数据库备份完成

  3. Especificar prioridad:

    logger -p local0.notice "自定义应用程序启动"

Ejemplos de uso avanzado

  1. Leer contenido de registro desde un archivo:

    logger -f /var/log/myapp.log
  2. 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
  3. Registro remoto:

    logger -n 192.168.1.100 -P 514 "发送到远程服务器的日志"
  4. 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:

  1. Ver registros del sistema:

    journalctl # sistemas con systemd o tail -f /var/log/syslog # sistemas tradicionales
  2. Filtrar registros por etiqueta específica:

    journalctl -t BACKUP
  3. Ver registros por tiempo:

    journalctl --since "2023-01-01" --until "2023-01-02"

Mejores prácticas y precauciones

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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.


Linux 命令大全Compendio de comandos Linux

Otras extensiones