Команда Linux logger

Linux 命令大全Справочник команд Linux


logger — это простая, но мощная команда командной строки в Linux, используемая для добавления записей в системный журнал (syslog). Она позволяет пользователям и скриптам записывать пользовательские сообщения в файлы системного журнала, что делает её важным инструментом для системного администрирования и устранения неполадок.

Типичные случаи использования:

  • Запись ключевых операций во время выполнения сценария
  • Отслеживание состояния задач системного обслуживания
  • Записи журнала для пользовательских приложений
  • Удалённое журналирование (с сервером syslog)

Базовый синтаксис и параметры

Базовый синтаксис команды logger следующий:

logger [选项] [消息]

Общие параметры опций

Опция Описание
-p, --priority <优先级> Указать приоритет журнала (facility.level)
-t, --tag <标签> Помечать записи журнала указанной меткой
-i, --id Включать ID процесса в каждую строку журнала
-f, --file <文件> Читать содержимое журнала из указанного файла
-s, --stderr Также выводить журналы в стандартный поток ошибок
-n, --server <主机> Отправлять журналы на удалённый сервер syslog
-P, --port <端口> Указать порт удалённого сервера syslog
-u, --socket <套接字> Указать сокет домена UNIX вместо устройства по умолчанию
-d, --udp Отправлять журналы по протоколу UDP (по умолчанию)
-T, --tcp Отправлять журналы по протоколу TCP
-h, --help Показать справочную информацию
-V, --version Показать информацию о версии

Подробное объяснение приоритета

Приоритет журнала состоит из двух частей: категории и уровня, в форматеfacility.level。

Типы категорий

Код категории Описание
auth Сообщения безопасности/авторизации
authpriv Приватные сообщения авторизации
cron Демон Cron
daemon Системный демон
kern Сообщения ядра
lpr Система печати
почта Почтовая система
news Система новостей
syslog Внутренние сообщения syslogd
user Сообщения уровня пользователя (по умолчанию)
local0-7 Настраиваемое локальное использование

Уровни логирования

Код уровня Описание Значение
emerg Система неработоспособна 0
alert Необходимо немедленно принять меры 1
crit Критические условия 2
err Условия ошибок 3
warning Предупреждающие условия 4
notice Нормальные, но значимые условия 5
информация Информационные сообщения 6
debug Сообщения уровня отладки 7

Практические примеры

Примеры базового использования

  1. Простая запись в журнал:

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

    Это запишет сообщение в системный журнал, по умолчанию используя приоритет user.notice.

  2. Запись в журнал с тегом:

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

    Запись в журнале будет отображаться как:BACKUP: 数据库备份完成

  3. Указать приоритет:

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

Расширенные примеры использования

  1. Чтение содержимого журнала из файла:

    logger -f /var/log/myapp.log
  2. Запись статуса выполнения скрипта:

    #!/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. Удалённая запись логов:

    logger -n 192.168.1.100 -P 514 "发送到远程服务器的日志"
  4. Одновременный вывод в терминал и в лог:

    logger -s "这条消息会同时出现在终端和日志中"

Просмотр логов и управление ими

После записи логов вы можете просмотреть их с помощью следующих команд:

  1. Просмотр системных логов:

    journalctl # системы с systemd или tail -f /var/log/syslog # традиционные системы
  2. Фильтрация логов по определённому тегу:

    journalctl -t BACKUP
  3. Просмотр логов по времени:

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

Лучшие практики и меры предосторожности

  1. Соглашения по тегам логов:

    • Используйте осмысленные теги (например, имя приложения или имя скрипта)
    • Поддерживайте согласованность тегов, чтобы упростить фильтрацию и анализ в дальнейшем
  2. Выбор приоритета:

    • Используйте разные уровни надлежащим образом; не используйте один и тот же уровень для всех логов
    • Используйте warning или выше для критических операций
  3. Рекомендации по содержимому логов:

    • Включайте достаточно контекстной информации
    • Избегайте записи конфиденциальной информации (например, паролей)
    • Делайте логи краткими, но полными
  4. Вопросы производительности:

    • Высокочастотная запись в лог может повлиять на производительность
    • Рассмотрите использование буферизованных или асинхронных методов для записи больших объёмов логов
  5. Ротация логов:

    • Регулярно очищайте старые логи
    • Настройте logrotate для управления размерами файлов логов

ЧАВО

Вопрос 1: Почему моя запись журнала не появляется в /var/log/syslog?

Ответ 1: Это может быть по следующим причинам:

  • Используемая вами категория (facility) настроена на запись в другой файл
  • Уровень журналирования ниже минимального уровня записи, настроенного в системе
  • Система использует journald вместо традиционного syslog

Вопрос 2: Как определить, какая система логирования используется в моей системе?

Ответ 2: Выполните следующую команду для проверки:

ps aux | grep -E "syslog|journald"

Вопрос 3: Можно ли использовать несколько опций одновременно?

Ответ 3: Да, например:

logger -t MYAPP -p local0.err -i "关键错误发生"

Вопрос 4: Как проверить конфигурацию удалённого сервера логов?

Ответ 4: Используйте logger для отправки тестового сообщения:

logger -n 远程服务器IP -P 端口 "测试消息"

Из этой статьи вы должны были освоить основное использование команды logger. Этот, казалось бы, простой инструмент очень полезен в практическом системном администрировании и разработке приложений, помогая вам создать полноценный механизм логирования. Рекомендуется больше практиковаться в реальной работе и гибко использовать различные параметры опций в соответствии с конкретными потребностями.


Linux 命令大全Справочник команд Linux

Другие расширения