LOGGER(1) Polecenia uzytkownika LOGGER(1) NAZWA logger - umieszcza komunikaty w dzienniku systemowym SKLADNIA logger [opcje] komunikat OPIS logger tworzy wpisy w dzienniku (logu) systemowym Gdy obecny jest opcjonalny argument komunikat, jest on zapisywany do dziennika. Jesli argument jest nieobecny i nie podano opcji -f, do dziennika trafi standardowe wejscie. OPCJE -d, --udp Uzywa tylko datagramow (UDP). Domyslnie, proba polaczenia nastapi z portem syslog zdefiniowanym w /etc/services, ktorym czesto jest port 514. Zob. tez opcje --server i --socket, sluzace do zdefiniowania miejsca polaczenia. -e, --skip-empty Ignoruje puste wiersze przy przetwarzaniu plikow. Pusty wiersz jest definiowany jako wiersz bez zadnych znakow. Z tego powodu, wiersz zawierajacy biale znaki NIE jest uwazany za pusty. Prosze zauwazyc, ze gdy podano opcje --prio-prefix, priorytet nie stanowi czesci wiersza. W tym trybie, pusty wiersz bedzie zatem wierszem, ktory nie zawiera zadnych znakow po przedrostku okreslajacym priorytet (np. <13>). -f, --file plik Zapisuje do dziennika zawartosc podanego pliku. Opcji nie mozna laczyc z komunikatem z wiersza polecen. -i Rejestruje identyfikator procesu logger w kazdym wierszu. --id[=id] Rejestruje identyfikator procesu logger w kazdym wierszu. Gdy poda sie opcjonalny argument id, jest on uzywany zamiast identyfikatora procesu polecenia logger. Korzystanie z --id=$$ (PPID) jest zalecane w skryptach, ktore wysylaja wiele komunikatow. Prosze zauwazyc, ze infrastruktura dziennika systemowego (np. systemd, gdy nasluchuje na /dev/log) moze korzystac z poswiadczen lokalnego gniazda, nadpisujac identyfikator procesu podany w komunikacie. logger(1) moze ustawic te poswiadczenia gniazda na podany id, ale wylacznie gdy posiada sie uprawnienia roota i proces o podanym identyfikatorze istnieje; w innym przypadku poswiadczenia gniazda nie sa 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 wejscia. Kazdy wiersz musi zaczynac sie od pola akceptowanego przez journald; wiecej szczegolow w podreczniku systemd.journal-fields(7). Dobrym pomyslem jest zwykle korzystanie z MESSAGE_ID, bowiem ulatwia to odnajdywanie wpisow. Przyklady: logger --journald <. Prosze zauwazyc, ze wewnatrz msgid znak spacji jest niedozwolony. Opcja jest uzywana tylko, gdy podano rownoczesnie --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 sprobuje uzyc najpierw UDP, ale jesli to zawiedzie, nastapi proba polaczenia TCP. --no-act Powoduje, ze zostanie wykonane wszystko, poza samym zapisem do dziennika oraz usunieciem polaczenia z dziennikiem. Opcje mozna laczyc z --stderr w celach testowych. --octet-count Korzysta z tworzenia ramek metoda liczenia oktetow RFC 6587 do wysylania komunikatow. Gdy nie korzysta sie z tej opcji, domyslnie w przypadku UDP nie sa tworzone ramki, a w przypadku TCP uzywane jest opisane w RFC6587 nieprzezroczyste tworzenie ramek (non-transparent framing lub inaczej octet stuffing). -P, --port port Korzysta z podanego portu. Gdy nie poda sie tej opcji, portem jest domyslnie syslog w przypadku polaczen udp oraz syslog-conn w przypadku tcp. -p, --priority priorytet Zapisuje komunikat z zadanym priorytetem. Priorytet moze byc okreslony liczbowo lub jako para zagadnienie._poziom ("facility.level"). Na przyklad, -p local3.info rejestruje komunikat jako o poziomie istotnosci informacyjnym dotyczacym zagadnienia local3. Domyslnym priorytetem jest user.notice. --prio-prefix Szuka przedrostka syslog w kazdym wierszu odczytywanym ze standardowego wejscia. Przedrostek jest liczba dziesiatkowa, umieszczona w nawiasach ostrych, ktora koduje zagadnienie i poziom. Liczba jest tworzona przez pomnozenie zagadnienia przez 8 i dodanie do tego iloczynu poziomu. Przykladowo local0.info, oznaczajace zagadnienie=16 i poziom=6, staje sie <134>. Jesli przedrostek nie zawiera zagadnienia, zagadnieniem domyslnie bedzie to, co podano opcja -p. Podobnie, jesli nie podano przedrostka, wiersza jest zapisywany do dziennika z priorytetem podanym opcja -p. Opcja nie wplywa na komunikat podany w wierszu polecenia. --rfc3164 Korzysta z protokolu syslog BSD RFC 3164 , w celu przeslania komunikatow na zdalny serwer. --rfc5424[=bez] Korzysta z protokolu syslog RFC 5424 , w celu przeslania komunikatow na zdalny serwer. Opcjonalny argument bez moze byc lista nastepujacych wartosci: notq, notime, nohost, rozdzielonych przecinkami. Wartosc notq wylacza ustrukturyzowane dane o jakosci czasu (time-quality) z zamieszczanych komunikatow. Informacje o jakosci czasu pokazuja, czy lokalny zegar byl zsynchronizowany wraz z maksymalna liczba mikrosekund, o jaka znacznik czasu moze byc odchylony. Jakosc czasu jest rowniez automatycznie wylaczana, gdy poda sie --sd-id timeQuality. Wartosc notime (ktora wymusza notq) wylacza pelny znacznik czasu wysylajacego w formacie ISO-8601, w tym mikrosekundy i strefe czasowa. Wartosc nohost wylacza informacje gethostname(2) z naglowka komunikatu. Protokol RFC 5424 jest domyslny dla programu logger od wersji 2.26. -s, --stderr Oprocz zapisu komunikatu do dziennika systemowego wysyla go na standardowe wyjscie bledow. --sd-id nazwa[@cyfry] Okresla identyfikator elementu ustrukturyzowanych danych dla naglowka komunikatu RFC 5424. Aby wprowadzic nowy element, opcje trzeba podac przed --sd-param. Liczba elementow ustrukturyzowanych danych jest nieograniczona. Identyfikator (nazwa oraz ewentualnie @cyfry) jest wrazliwa na wielkosc znakow i unikalnie identyfikuje typ i zastosowanie elementu. Ten sam identyfikator nie moze wystapic wiecej niz raz w komunikacie. Czesc @cyfry jest wymagana dla niestandaryzowanych identyfikatorow zdefiniowanych przez uzytkownika. logger obecnie tworzy jedynie standaryzowany element timeQuality. RFC 5424 opisuje rowniez elementy origin (z parametrami ip, enterpriseId, software i swVersion) oraz meta (z parametrami sequenceId, sysUpTime i language). Te identyfikatory elementow mozna podac bez przyrostka @cyfry. --sd-param nazwa=wartosc Okresla parametr ustrukturyzowanego elementu danych, w postaci pary nazwy i wartosci. Opcje nalezy podac po --sd-id i mozna to zrobic wielokrotnie dla tego samego elementu. Prosze zauwazyc, ze wartosc musi byc otoczona cudzyslowami, ktore nalezy zacytowac w wierszu polecenia. logger --rfc5424 --sd-id zoo@123 \ --sd-param tygrys="glodny" \ --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="glodny" zebra="biega"][szef@123 naSpotkaniu="tak"] oto komunikat -S, --size rozmiar Ustawia maksymalny dopuszczalny rozmiar komunikatu na rozmiar. Domyslnie jest to 1KiB znakow, co jest limitem tradycyjnym i podanym w RFC 3164. Wraz z RFC 5424 limit stal sie elastyczny. Dobrym zalozeniem jest, ze przyjmujacy zgodni z RFC 5424 moga przetworzyc komunikaty o wielkosci co najmniej 4KiB. Wiekszosc przyjmujacych akceptuje komunikaty wieksze niz 1KiB poprzez dowolny protokol syslog. Z tego powodu opcja --size ma wplyw na program logger we wszystkich przypadkach (nie tylko, gdy uzyto --rfc5424). Uwaga: limit wielkosci komunikatu dotyczy calego komunikatu, lacznie z naglowkiem syslog. Rozmiar naglowka zalezy od wybranych opcji i dlugosci nazwy stacji. W praktyce, naglowki zwykle nie sa dluzsze niz 50 do 80 znakow. Przy wyborze maksymalnego rozmiaru komunikatu nalezy upewnic sie, ze otrzymujacy go obsluguje, w innym przypadku komunikaty moga zostac przyciete. Ponownie, w praktyce rozmiary komunikatow od dwoch do czterech KiB powinny byc zwykle w porzadku, natomiast obsluge wiekszych nalezy zweryfikowac. --socket-errors tryb Wypisuje bledy o polaczeniach gniazd uniksowych. Trybem moze byc jedna z wartosci: on, off lub auto. Jesli trybem jest auto (tak jest domyslnie), to logger wykryje czy procesem init jest systemd(1) i jesli tak jest przyjmie, ze /dev/log mozna uzyc we wczesnej fazie rozruchu. Brak /dev/log w innych systemach init nie spowoduje bledow, podobnie jak uzywanie wywolania systemowego openlog(3). Program logger(1) przed wersja 2.26 uzywal openlog(3), zatem nie byl w stanie wykryc utraty komunikatow wyslanych do gniazd uniksowych. Gdy wypisywanie bledow jest wylaczone, utracone komunikaty nie sa komunikowane i spowoduja pomyslny status zakonczenia programu logger(1). -T, --tcp Uzywa wylacznie strumienia (TCP). Domyslnie, proba polaczenia ma miejsce na porcie syslog-conn zdefiniowanym w pliku /etc/services, ktory czesto wynosi 601. Zob. tez opcje --server i --socket, sluzace do zdefiniowania miejsca polaczenia. -t, --tag znacznik Oznacza kazdy zapisywany do dziennika wiersz, podanym znacznikiem. Domyslnym znacznikiem jest nazwa uzytkownika zalogowanego na terminalu (lub nazwa uzytkownika oparta na efektywnym identyfikatorze uzytkownika). -u, --socket gniazdo Zapisuje do podanego gniazda zamiast do systemowego gniazda dziennika. -- Konczy liste argumentow. Pozwala to rozpoczac komunikat minusem (-). -h, --help Wyswietla ten tekst i wychodzi. -V, --version Wyswietla wersje i wychodzi. STATUS ZAKONCZENIA Narzedzie logger wychodzi z 0 przy powodzeniu i z >0 jesli wystapil blad. ZAGADNIENIA I POZIOMY Prawidlowe nazwy zagadnien to: auth authpriv do wrazliwych informacji zwiazanych z bezpieczenstwem cron daemon ftp kern nie mozna wygenerowac z przestrzeni uzytkownika; automatycznie konwertowane do*user* lpr mail news syslog user uucp local0 do local7 security przestarzaly synonim auth Prawidlowe nazwy poziomow to: emerg alert crit err warning notice info debug panic przestarzaly synonim emerg error przestarzaly synonim err warn przestarzaly synonim warning Kolejnosc priorytetow oraz zamierzone zastosowania podanych zagadnien i poziomow opisano w podreczniku syslog(3). ZGODNE Z Polecenie logger powinno byc zgodne z IEEE Std 1003.2 ("POSIX.2"). PRZYKLADY logger System sie przeladowal logger -p local0.notice -t HOSTIDM -f /dev/idmc logger -n loghost.example.com System sie przeladowal AUTORZY Polecenie logger pierwotnie napisano na Uniwersytecie Kalifornijskim w latach 1983-1993, a pozniej zostalo przepisane przez: Karela Zaka , Rainera Gerhardsa oraz Samiego Kerole . ZOBACZ TAKZE journalctl(1), syslog(3), systemd.journal-fields(7) ZGLASZANIE BLEDOW Problemy nalezy zglaszac w systemie sledzenia bledow . DOSTEPNOSC Polecenie logger jest czescia pakietu util-linux, ktory mozna pobrac ze strony Archiwum jadra Linux . util-linux 2.41 2025-03-29 LOGGER(1)