Scroll to navigation

LOGGER(1) Команди користувача LOGGER(1)

НАЗВА

logger — вписування повідомлень до журналу системи

КОРОТКИЙ ОПИС

logger [параметри] повідомлення

ОПИС

logger робить записи до системного журналу.

Якщо вказано необов'язковий аргумент повідомлення, його буде записано до журналу. Якщо аргумент не вказано, і не використано параметр -f, до журналу буде записано дані зі стандартного джерела вхідних даних.

ПАРАМЕТРИ

-d, --udp

Використовувати лише датаграми (UDP). Типово, буде виконано спробу встановити з'єднання із портом syslog, який визначено в /etc/services, яким часто є 514.

Додаткові відомості щодо визначення місця з'єднання наведено у описах --server і --socket.

-e, --skip-empty

Ігнорувати під час обробки файлів порожні рядки. За визначенням, порожнім вважають рядок без будь-яких символів. Отже, рядок, що складається з пробілів НЕ вважають порожнім. Зауважте, що якщо вказано параметр --prio-prefix, пріоритетність запису не вважатиметься частиною рядка. Таким чином, порожнім у цьому режимі буде рядок, у якому не міститься жодних символів після префікса пріоритетності (наприклад <13>).

-f, --file файл

Записати до журналу вміст вказаного файла. Цей параметр не можна поєднувати з повідомленням командного рядка.

-i

Записувати PID досліджуваного процесу до кожного рядка.

--id[=ідентифікатор]

Записати до журналу PID процесу logger до кожного рядка. Якщо вказано необов'язковий аргумент ідентифікатор, його буде використано замість PID команди logger. У скриптах, які надсилають декілька повідомлень, рекомендовано користуватися --id=$$ (PPID).

Зауважте, що в інфраструктурі ведення журналу системи (наприклад, у systemd при очікуванні даних з /dev/log) може бути використано реєстраційні дані локального сокета для перезапису PID, який вказано у повідомленні. logger(1) може встановити для реєстраційних даних таких сокетів вказаний ідентифікатор, але лише якщо у вас є права доступу користувача root, і процес із вказаним PID існує, інакше реєстраційні дані сокета не буде змінено, а проблему буде без додаткових повідомлень проігноровано.

--journald[=файл]

Створити запис журналу systemd. Запис буде прочитано з заданого файла, якщо його вказано. Якщо файл не вказано, запис буде прочитано зі стандартного джерела вхідних даних. Кожен рядок має починатися з поля, яке є прийнятним для journald. Див. systemd.journal-fields(7), щоб дізнатися більше. Загалом, варто користуватися полем MESSAGE_ID, оскільки воно спрощує пошук. Приклади:

logger --journald <<end
MESSAGE_ID=67feb6ffbaf24c5cbec13c008dd72309
MESSAGE=The dogs bark, but the caravan goes on.
DOGS=bark
CARAVAN=goes on
end

logger --journald=entry.txt

Зауважте, що --journald ігноруватиме значення інших параметрів, зокрема пріоритетності. Якщо потрібна пріоритетність, вона має бути у вхідних даних і використовувати поле PRIORITY. Просте виконання journalctl(1) призведе до виведення поля MESSAGE. Скористайтеся journalctl --output json-pretty для перегляду решти полів.

+ Щоб включити до MESSAGE символи розриву рядків, вкажіть MESSAGE декілька разів. Такий випадок буде оброблено як особливий, інші поля буде збережено як масив у журналі, якщо їх вказано декілька разів.

--msgid ідентифікатор-повідомлення

Встановлює RFC 5424 <https://tools.ietf.org/html/rfc5424> значення поля MSGID з link:https://tools.ietf.org/html/rfc5424[RFC 5424]. Зауважте, що символ пробілу в аргументі ідентифікатор-повідомлення використовувати не можна. Цей параметр використовують, лише якщо також використано параметр --rfc5424. Якщо параметр --rfc5424 не використано, цей параметр буде без повідомлень проігноровано.

-n, --server сервер

Записати повідомлення на вказаному віддаленому сервері syslog, замість сокета системного журналу. Якщо не вказано --udp або --tcp, logger спочатку спробує скористатися UDP, а якщо це не вдасться, спробує встановити з'єднання TCP.

--no-act

Наказує програмі виконати усі дії, окрім записування повідомлення журналу до системного журналу і вилучення з'єднання із журналом. Цей параметр можна використовувати разом із --stderr з метою тестування.

--octet-count

Використовувати RFC 6587 <https://tools.ietf.org/html/rfc6587> метод кадрування при обліку октет із link:https://tools.ietf.org/html/rfc6587[RFC 6587] при надсиланні повідомлень. Якщо цей параметр не використано, типовим є вимикання кадрування у UDP і використання непрозорого кадрування з RFC6587 (також відомого як набивання октет) у TCP.

-P, --port порт

Використати вказаний порт. Якщо цей параметр не вказано, типовим портом буде syslog для з'єднань udp і syslog-conn для з'єднань tcp.

-p, --priority пріоритетність

Вписати повідомлення до журналу з використанням вказаної пріоритетності. Пріоритетність може бути вказано у числовій формі або як пару можливість.рівень. Наприклад, -p local3.info записує повідомлення як інформаційне у можливості local3. Типовою є пара user.notice.

--prio-prefix

Шукати префікс syslog у кожному рядку, який прочитано зі стандартного джерела вхідних даних. Цей префікс є десятковим числом у кутових дужках, у якому закодовано одразу можливість і рівень. Число буде побудовано шляхом множення можливості на 8 із додаванням рівня. Наприклад, local0.info означає, що можливість=16 і рівень=6, що дає <134>.

Якщо у префіксі не міститься запису можливості, типовою є можливість, яку вказано за допомогою параметра -p. Так само, якщо не вказано префікс, рядок буде записано до журналу з використанням значення пріоритетності, яка задано за допомогою -p.

Цей параметр не впливає на повідомлення командного рядка.

--rfc3164

Використовувати RFC 3164 <https://tools.ietf.org/html/rfc3164> Скористатися протоколом syslog BSD для надсилання повідомлень на віддалений сервер.

--rfc5424[=аргумент]

Використовувати RFC 5424 <https://tools.ietf.org/html/rfc5424> протокол syslog для надсилання повідомлень на віддалений сервер. Необов'язковим аргументом аргумент можна скористатися для визначення списку відокремлених комами таких значень: notq, notime, nohost.

Значення notq придушує структуровані дані щодо якості часу у надісланому повідомленні. Дані щодо якості часу показують, чи синхронізовано локальний годинник, і вказують на максимальне відхилення часової позначки. Якість часу також буде автоматично придушено, якщо вказано параметр *--sd-id timeQuality*.

Значення notime (яке неявним чином встановлює notq) придушує повну часову позначку відправника у форматі ISO-8601, включно з мікросекундами і часовим поясом.

Значення nohost придушує відомості gethostname(2) у заголовку повідомлення.

Протокол RFC 5424 став типовим для logger, починаючи з версії 2.26.

-s, --stderr

Вивести повідомлення до стандартного виведення помилок, окрім системного журналу.

--sd-id назва[@цифри]

Вказує ідентифікатор елемента структурованих даних для заголовка повідомлення за RFC 5424. Параметр слід використовувати до вказаного --sd-param для впровадження нового елемента. Кількість елементів структурованих даних не обмежено. Ідентифікатор (назва плюс можливо @цифри) записують із врахуванням регістру символів і унікально ідентифікує тип і призначення елемента. У повідомленні не повинно бути більше за один той самий ідентифікатор. Частина @цифри є обов'язковою для визначених користувачем нестандартних ідентифікаторів.

logger у поточній версії створює лише стандартизований елемент timeQuality. RFC 5424 також описує елементи origin (з параметрами ip, enterpriseId, software та swVersion) та meta (з параметрами sequenceId, sysUpTime і language). Ці ідентифікатори елементів може бути вказано без суфікса @цифри.

--sd-param назва=значення

Вказує параметр елемента структурованих даних, пару назва-значення. Параметр має бути використано після --sd-id, його можна вказувати декілька разів для одного елемента. Зверніть увагу на те, що слід використовувати лапки навколо значення, а вміст має бути екрановано у командному рядку.


logger --rfc5424 --sd-id zoo@123 \
--sd-param tiger="голодний" \
--sd-param zebra="біжить" \
--sd-id manager@123 \
--sd-param onMeeting="yes" \
"це повідомлення"

дає:

<13>1 2015-10-01T14:07:59.168662+02:00 ws kzak - - [timeQuality tzKnown="1" isSynced="1" syncAccuracy="218616"][zoo@123 tiger="голодний" zebra="біжить"][manager@123 onMeeting="yes"] це повідомлення

-S, --size розмір

Встановити максимальний припустимий розмір повідомлення у значення розмір. Типовим розміром є 1 КіБ символів, тобто обмеження, яке традиційно використовують і яке вказано у RFC 3164. З появою RFC 5424 обмеження стало гнучким. Притомним припущенням є те, що отримувачі за стандартом RFC 5424 можуть обробляти повідомлення, розмір яких дорівнює принаймні 4 КіБ.

Більшість отримувачів приймають повідомлення, розмір яких перевищує 1 КіБ, за будь-яким типом протоколу syslog. Отже, параметр --size стосується logger в усіх випадках (не лише, коли використано --rfc5424).

Зауваження: обмеження розміру повідомлення стосується загального розміру повідомлення, включно із заголовком syslog. Розмір заголовка залежить від вибраних параметрів і довжини назви вузла. Як правило, довжина заголовка не перевищує значення від 50 до 80 символів. При виборі максимального розміру повідомлення важливо переконатися, що на боці отримувача також передбачено підтримку максимального розміру, інакше повідомлення може бути обрізано. Знову ж таки, як правило, розмір повідомлення від двох до чотирьох КіБ має бути задовільним, працездатність усіх інших більших розмірів слід перевіряти.

--socket-errors[=режим]

Виводити повідомлення про помилки щодо з'єднань із сокетом Unix. Значенням аргументу режим може бути один з таких рядків: off, on або auto. Якщо режимом є auto, logger виконає визначення того, чи є процесом ініціалізації systemd(1), і якщо це так, зробить припущення про можливість використання /dev/log на ранніх етапах завантаження системи. У інших системах ініціалізації без /dev/log помилок не виникне, що подібне до обміну повідомленнями за допомогою системного виклику openlog(3). Програма logger(1) до версії 2.26 використовувала openlog(3), а отже, не могла виявляти втрату повідомлень, які надіслано до сокетів Unix.

Типовим режимом є auto. Якщо помилки не увімкнено, обмін втраченими повідомленнями не відбуватиметься, а результатом буде успішний стан виходу при виклику logger(1).

-T, --tcp

Використовувати лише потік (TCP). Типово, буде виконано спробу встановити з'єднання із портом syslog-conn, який визначено в /etc/services, яким часто є 601.

Додаткові відомості щодо визначення місця з'єднання наведено у описах --server і --socket.

-t, --tag мітка

Позначити кожен з рядків, які слід записувати до журналу, вказаною міткою. Типовою міткою є ім'я користувача, який увійшов до системи у терміналі (або ім'я користувача, якеи визначено на основі ідентифікатора ефективного користувача).

-u, --socket сокет

Записати дані до вказаного сокета замість сокета журналу системи.

--

Кінець списку аргументів. За допомогою цього параметра можна розпочинати повідомлення з дефіса (-).

-h, --help

Вивести текст довідки і завершити роботу.

-V, --version

Вивести дані щодо версії і завершити роботу.

СТАН ВИХОДУ

Допоміжна програма logger завершує роботу із кодом стану 0 у разі успіху і кодом стану >0, якщо станеться помилка.

МОЖЛИВОСТІ І РІВНІ

Коректними назвами можливостей є такі:

auth
authpriv for security information of a sensitive nature
cron

daemon
ftp
kern не може бути створено з процесу простору користувача, автоматично перетворюється на user

lpr
mail
news
syslog
user
uucp
local0
до
local7
security застарілий синонім auth

Коректними назвами рівнів є такі:

emerg
alert
crit
err
warning
notice
info
debug
panic застарілий синонім emerg
error застарілий синонім err
warn застарілий синонім warning

Опис порядку пріоритетності та призначення цих можливостей і рівнів можна знайти на сторінці підручника щодо syslog(3).

ВІДПОВІДНІСТЬ

Команда logger має бути сумісною із стандартом IEEE 1003.2 ("POSIX.2").

ПРИКЛАДИ

logger System rebooted logger -p local0.notice -t HOSTIDM -f /dev/idmc logger -n loghost.example.com System rebooted

АВТОРИ

Початкову версію програми logger було створено Каліфорнійським університетом у 1983-1993 роках, а пізніше переписано Karel Zak <kzak@redhat.com>, Rainer Gerhards <rgerhards@adiscon.com>, і Sami Kerola <kerolasa@iki.fi>.

ДИВ. ТАКОЖ

journalctl(1), syslog(3), systemd.journal-fields(7)

ЗВІТИ ПРО ВАДИ

Для звітування про вади використовуйте систему стеження помилками на <https://github.com/util-linux/util-linux/issues>.

ДОСТУПНІСТЬ

logger є частиною пакунка util-linux, який можна отримати з Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.

ПЕРЕКЛАД

Український переклад цієї сторінки посібника виконано Yuri Chornoivan <yurchor@ukr.net>

Цей переклад є безкоштовною документацією; будь ласка, ознайомтеся з умовами GNU General Public License Version 3. НЕ НАДАЄТЬСЯ ЖОДНИХ ГАРАНТІЙ.

Якщо ви знайшли помилки у перекладі цієї сторінки підручника, будь ласка, надішліть електронний лист до списку листування перекладачів: trans-uk@lists.fedoraproject.org.

11 травня 2022 року util-linux 2.38.1