Scroll to navigation

LOGGER(1) Polecenia użytkownika LOGGER(1)

NAZWA

logger - umieszcza komunikaty w dzienniku systemowym

SKŁADNIA

logger [opcje] komunikat

OPIS

logger tworzy wpisy w dzienniku (logu) systemowym

Gdy obecny jest opcjonalny argument komunikat, jest on zapisywany do dziennika. Jeśli argument jest nieobecny i nie podano opcji -f, do dziennika trafi standardowe wejście.

OPCJE

-d, --udp

Używa tylko datagramów (UDP). Domyślnie, próba połączenia nastąpi z portem syslog zdefiniowanym w /etc/services, którym często jest port 514.

Zob. też opcje --server i --socket, służące do zdefiniowania miejsca połączenia.

-e, --skip-empty

Ignoruje puste wiersze przy przetwarzaniu plików. Pusty wiersz jest definiowany jako wiersz bez żadnych znaków. Z tego powodu, wiersz zawierający białe znaki NIE jest uważany za pusty. Proszę zauważyć, że gdy podano opcję --prio-prefix, priorytet nie stanowi części wiersza. W tym trybie, pusty wiersz będzie zatem wierszem, który nie zawiera żadnych znaków po przedrostku określającym priorytet (np. <13>).

-f, --file plik

Zapisuje do dziennika zawartość podanego pliku. Opcji nie można łączyć z komunikatem z wiersza poleceń.

-i

Rejestruje identyfikator procesu logger w każdym wierszu.

--id[=id]

Rejestruje identyfikator procesu logger w każdym wierszu. Gdy poda się opcjonalny argument id, jest on używany zamiast identyfikatora procesu polecenia logger. Korzystanie z --id=$$ (PPID) jest zalecane w skryptach, które wysyłają wiele komunikatów.

Note that the system logging infrastructure (for example systemd when listening on /dev/log) may follow local socket credentials to override the PID specified in the message. logger(1) is able to set those socket credentials to the given id, but only if you have root permissions and a process with the specified PID exists, otherwise the socket credentials are not modified and the problem is silently ignored.

--journald[=plik]

Tworzy wpis dziennika systemd. Wpis jest odczytywany z podanego pliku, o ile zostanie podany, albo ze standardowego wejścia. Każdy wiersz musi zaczynać się od pola akceptowanego przez journald; więcej szczegółów w podręczniku systemd.journal-fields(7). Dobrym pomysłem jest zwykle korzystanie z MESSAGE_ID, bowiem ułatwia to odnajdywanie wpisów. Przykłady:

logger --journald <<koniec
MESSAGE_ID=67feb6ffbaf24c5cbec13c008dd72309
MESSAGE=Psy szczekają, karawana idzie dalej.
PSY=szczekają
KARAWANA=idzie dalej
koniec

logger --journald=wpis.txt

Proszę zauważyć, że --journald zignoruje wartości innych opcji, takie jak priorytet. Jeśli priorytet jest potrzebny, należy go umieścić w wejściu, korzystając z pola PRIORITY. Wykonanie jedynie journalctl(1) wyświetli pole MESSAGE. Polecenie journalctl --output json-pretty pokaże pozostałe pola.

Aby wprowadzić nowe wiersze w MESSAGE, należy podać MESSAGE kilka razy. Jest to obsługiwane jako specjalny przypadek, inne pola będą przechowywane w dzienniku jako tablica, jeśli pojawią się wielokrotnie.

--msgid msgid

Ustawia pole RFC 5424 <https://tools.ietf.org/html/rfc5424>. Proszę zauważyć, że wewnątrz msgid znak spacji jest niedozwolony. Opcja jest używana tylko, gdy podano równocześnie --rfc5424; w innym przypadku jest po cichu ignorowana.

-n, --server serwer

Zapisuje do podanego zdalnego serwera syslog, zamiast do gniazda dziennika systemowego. O ile nie podano --udp lub --tcp, logger spróbuje użyć najpierw UDP, ale jeśli to zawiedzie, nastąpi próba połączenia TCP.

--no-act

Powoduje, że zostanie wykonane wszystko, poza samym zapisem do dziennika oraz usunięciem połączenia z dziennikiem. Opcję można łączyć z --stderr w celach testowych.

--octet-count

Korzysta z tworzenia ramek metodą liczenia oktetów RFC 6587 <https://tools.ietf.org/html/rfc6587> do wysyłania komunikatów. Gdy nie korzysta się z tej opcji, domyślnie w przypadku UDP nie są tworzone ramki, a w przypadku TCP używane jest opisane w RFC6587 nieprzezroczyste tworzenie ramek (non-transparent framing lub inaczej octet stuffing).

-P, --port port

Korzysta z podanego portu. Gdy nie poda się tej opcji, portem jest domyślnie syslog w przypadku połączeń udp oraz syslog-conn w przypadku tcp.

-p, --priority priorytet

Zapisuje komunikat z zadanym priorytetem. Priorytet może być określony liczbowo lub jako para zagadnienie._poziom ("facility.level"). Na przykład, -p local3.info rejestruje komunikat jako o poziomie istotności informacyjnym dotyczącym zagadnienia local3. Domyślnym priorytetem jest user.notice.

--prio-prefix

Szuka przedrostka syslog w każdym wierszu odczytywanym ze standardowego wejścia. Przedrostek jest liczbą dziesiątkową, umieszczoną w nawiasach ostrych, która koduje zagadnienie i poziom. Liczba jest tworzona przez pomnożenie zagadnienia przez 8 i dodanie do tego iloczynu poziomu. Przykładowo local0.info, oznaczające zagadnienie=16 i poziom=6, staje się <134>.

Jeśli przedrostek nie zawiera zagadnienia, zagadnieniem domyślnie będzie to, co podano opcją -p. Podobnie, jeśli nie podano przedrostka, wiersza jest zapisywany do dziennika z priorytetem podanym opcją -p.

This option doesn’t affect a command-line message. This option is primarily designed for use cases where logger is used in a pipeline (e.g., daemon | logger --prio-prefix) to read multiple messages with different priorities.

--rfc3164

Korzysta z protokołu syslog BSD RFC 3164 <https://tools.ietf.org/html/rfc3164>, w celu przesłania komunikatów na zdalny serwer.

--rfc5424[=bez]

Korzysta z protokołu syslog RFC 5424 <https://tools.ietf.org/html/rfc5424>, w celu przesłania komunikatów na zdalny serwer. Opcjonalny argument bez może być listą następujących wartości: notq, notime, nohost, rozdzielonych przecinkami.

Wartość notq wyłącza ustrukturyzowane dane o jakości czasu (time-quality) z zamieszczanych komunikatów. Informacje o jakości czasu pokazują, czy lokalny zegar był zsynchronizowany wraz z maksymalną liczbą mikrosekund, o jaką znacznik czasu może być odchylony. Jakość czasu jest również automatycznie wyłączana, gdy poda się --sd-id timeQuality.

Wartość notime (która wymusza notq) wyłącza pełny znacznik czasu wysyłającego w formacie ISO-8601, w tym mikrosekundy i strefę czasową.

Wartość nohost wyłącza informację gethostname(2) z nagłówka komunikatu.

Protokół RFC 5424 jest domyślny dla programu logger od wersji 2.26.

-s, --stderr

Output the message to standard error as well as to the system log. The complete message is output in the same form as sent to syslog or journald, including priority and possibly other fields. This option is primarily designed for debugging purposes and is often used with --no-act.

--sd-id nazwa[@cyfry]

Określa identyfikator elementu ustrukturyzowanych danych dla nagłówka komunikatu RFC 5424. Aby wprowadzić nowy element, opcję trzeba podać przed --sd-param. Liczba elementów ustrukturyzowanych danych jest nieograniczona. Identyfikator (nazwa oraz ewentualnie @cyfry) jest wrażliwa na wielkość znaków i unikalnie identyfikuje typ i zastosowanie elementu. Ten sam identyfikator nie może wystąpić więcej niż raz w komunikacie. Część @cyfry jest wymagana dla niestandaryzowanych identyfikatorów zdefiniowanych przez użytkownika.

logger obecnie tworzy jedynie standaryzowany element timeQuality. RFC 5424 opisuje również elementy origin (z parametrami ip, enterpriseId, software i swVersion) oraz meta (z parametrami sequenceId, sysUpTime i language). Te identyfikatory elementów można podać bez przyrostka @cyfry.

--sd-param nazwa=wartość

Określa parametr ustrukturyzowanego elementu danych, w postaci pary nazwy i wartości. Opcję należy podać po --sd-id i można to zrobić wielokrotnie dla tego samego elementu. Proszę zauważyć, że wartość musi być otoczona cudzysłowami, które należy zacytować w wierszu polecenia.


logger --rfc5424 --sd-id zoo@123 \
--sd-param tygrys="głodny" \
--sd-param zebra="biega" \
--sd-id szef@123 \
--sd-param naSpotkaniu="tak" \
"oto komunikat"

daje:

<13>1 2015-10-01T14:07:59.168662+02:00 ws kzak - - [timeQuality tzKnown="1" isSynced="1" syncAccuracy="218616"][zoo@123 tygrys="głodny" zebra="biega"][szef@123 naSpotkaniu="tak"] oto komunikat

-S, --size rozmiar

Ustawia maksymalny dopuszczalny rozmiar komunikatu na rozmiar. Domyślnie jest to 1KiB znaków, co jest limitem tradycyjnym i podanym w RFC 3164. Wraz z RFC 5424 limit stał się elastyczny. Dobrym założeniem jest, że przyjmujący zgodni z RFC 5424 mogą przetworzyć komunikaty o wielkości co najmniej 4KiB.

Większość przyjmujących akceptuje komunikaty większe niż 1KiB poprzez dowolny protokół syslog. Z tego powodu opcja --size ma wpływ na program logger we wszystkich przypadkach (nie tylko, gdy użyto --rfc5424).

Uwaga: limit wielkości komunikatu dotyczy całego komunikatu, łącznie z nagłówkiem syslog. Rozmiar nagłówka zależy od wybranych opcji i długości nazwy stacji. W praktyce, nagłówki zwykle nie są dłuższe niż 50 do 80 znaków. Przy wyborze maksymalnego rozmiaru komunikatu należy upewnić się, że otrzymujący go obsługuje, w innym przypadku komunikaty mogą zostać przycięte. Ponownie, w praktyce rozmiary komunikatów od dwóch do czterech KiB powinny być zwykle w porządku, natomiast obsługę większych należy zweryfikować.

--socket-errors tryb

Wypisuje błędy o połączeniach gniazd uniksowych. Trybem może być jedna z wartości: on, off lub auto. Jeśli trybem jest auto (tak jest domyślnie), to logger wykryje czy procesem init jest systemd(1) i jeśli tak jest przyjmie, że /dev/log można użyć we wczesnej fazie rozruchu. Brak /dev/log w innych systemach init nie spowoduje błędów, podobnie jak używanie wywołania systemowego openlog(3). Program logger(1) przed wersją 2.26 używał openlog(3), zatem nie był w stanie wykryć utraty komunikatów wysłanych do gniazd uniksowych.

Gdy wypisywanie błędów jest wyłączone, utracone komunikaty nie są komunikowane i spowodują pomyślny status zakończenia programu logger(1).

-T, --tcp

Używa wyłącznie strumienia (TCP). Domyślnie, próba połączenia ma miejsce na porcie syslog-conn zdefiniowanym w pliku /etc/services, który często wynosi 601.

Zob. też opcje --server i --socket, służące do zdefiniowania miejsca połączenia.

-t, --tag znacznik

Oznacza każdy zapisywany do dziennika wiersz, podanym znacznikiem. Domyślnym znacznikiem jest nazwa użytkownika zalogowanego na terminalu (lub nazwa użytkownika oparta na efektywnym identyfikatorze użytkownika).

-u, --socket gniazdo

Zapisuje do podanego gniazda zamiast do systemowego gniazda dziennika.

--

Kończy listę argumentów. Pozwala to rozpocząć komunikat minusem (-).

-h, --help

Wyświetla ten tekst i wychodzi.

-V, --version

Wyświetla wersję i wychodzi.

STATUS ZAKOŃCZENIA

Narzędzie logger wychodzi z 0 przy powodzeniu i z >0 jeśli wystąpił błąd.

ZAGADNIENIA I POZIOMY

Prawidłowe nazwy zagadnień to:

auth
authpriv do wrażliwych informacji związanych z bezpieczeństwem
cron

daemon
ftp
kern nie można wygenerować z przestrzeni użytkownika; automatycznie konwertowane do*user*

lpr
mail
news
syslog
user
uucp
local0
do
local7
security przestarzały synonim auth

Prawidłowe nazwy poziomów to:

emerg
alert
crit
err
warning
notice
info
debug
panic przestarzały synonim emerg
error przestarzały synonim err
warn przestarzały synonim warning

Kolejność priorytetów oraz zamierzone zastosowania podanych zagadnień i poziomów opisano w podręczniku syslog(3).

ZGODNE Z

Polecenie logger powinno być zgodne z IEEE Std 1003.2 ("POSIX.2").

PRZYKŁADY

logger System się przeładował

logger -p local0.notice -t HOSTIDM -f /dev/idmc

logger -n loghost.example.com System się przeładował

AUTORZY

Polecenie logger pierwotnie napisano na Uniwersytecie Kalifornijskim w latach 1983-1993, a później zostało przepisane przez: Karela Zaka <kzak@redhat.com>, Rainera Gerhardsa <rgerhards@adiscon.com> oraz Samiego Kerolę <kerolasa@iki.fi>.

ZOBACZ TAKŻE

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

ZGŁASZANIE BŁĘDÓW

Problemy należy zgłaszać w systemie śledzenia błędów <https://github.com/util-linux/util-linux/issues>.

DOSTĘPNOŚĆ

Polecenie logger jest częścią pakietu util-linux, który można pobrać ze strony Archiwum jądra Linux <https://www.kernel.org/pub/linux/utils/util-linux/>.

2026-03-26 util-linux 2.42-rc2