Provided by: util-linux-locales_2.41-4ubuntu3_all bug

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.

           Proszę zauważyć, że infrastruktura dziennika systemowego (np. systemd, gdy nasłuchuje na /dev/log)
           może korzystać z poświadczeń lokalnego gniazda, nadpisując identyfikator procesu podany w
           komunikacie. logger(1) może ustawić te poświadczenia gniazda na podany id, ale wyłącznie gdy posiada
           się uprawnienia roota i proces o podanym identyfikatorze istnieje; w innym przypadku poświadczenia
           gniazda nie są modyfikowane, a problem jest po cichu ignorowany.

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

           Opcja nie wpływa na komunikat podany w wierszu polecenia.

       --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
           Oprócz zapisu komunikatu do dziennika systemowego wysyła go na standardowe wyjście błędów.

       --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/>.

util-linux 2.41                                    2025-07-02                                          LOGGER(1)