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.

    Proszę zauważyć, że infrastruktura dziennika systemowego (np. systemd, gdy nasłuchuje na /dev/log) może korzystać z poświadczeń lokalnego gniazda, przesłaniają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 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 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 w wierszu polecenia. Została zaprojektowana przede wszystkich do przypadków, gdy logger jest częścią potoku (np. daemon | logger --prio-prefix) w celu odczytywania wielu komunikatów o różnych priorytetach.

--rfc3164
    Korzysta z protokołu syslog BSD w celu przesłania komunikatów na zdalny serwer.

--rfc5424[=bez]
    Korzysta z protokołu syslog 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
    Wypisuje komunikaty na standardowe wyjście błędów oraz do dziennika systemowego. Komunikaty są wypisywane w tej samej postaci, w jakiej są wysyłane do dziennika syslog lub journald, łącznie z priorytetem i ewentualnymi innymi polami. Opcja przeznaczona głównie do debugowania, często łączona z --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: oraz

ZOBACZ TAKŻE

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

ZGŁASZANIE BŁĘDÓW

Problemy należy zgłaszać w

DOSTĘPNOŚĆ

Polecenie logger jest częścią pakietu util-linux, który można pobrać ze strony