-d, --udp
verwendet nur Datagramme (UDP). Standardmäßig wird die Verbindung über den in
/etc/services definierten Syslog-Port versucht, oft ist dieser der Port 514.
Siehe auch --server und --socket, um anzugeben, wohin verbunden werden soll.
-e, --skip-empty
ignoriert leere Zeilen beim Verarbeiten von Dateien. Eine leere Zeile wird hierbei als Zeile definiert, die keinerlei Zeichen enthält. Daher wird eine Zeile, die nur Leerraum enthält, NICHT als leere Zeile angesehen. Beachten Sie, dass bei Angabe der Option --prio-prefix die Priorität nicht Teil der Zeile ist. Daher wird in diesem Modus eine Zeile als leer angesehen, die nach dem Prioritäts-Präfix (z.B. <13>) keine Zeichen enthält.
-f, --file Datei
protokolliert den Inhalt der angegebenen Datei. Diese Option kann nicht mit einer Befehlszeilenmeldung kombiniert werden.
-i
protokolliert mit jeder Zeile die Prozesskennung des logger-Prozesses.
--id[=ID]
protokolliert die Prozesskennung des
logger-Prozesses mit jeder Zeile. Wenn das optionale Argument
Kennung angegeben ist, wird dieses anstelle der Prozesskennung des
logger-Befehls verwendet. In Skripten, die mehrere Meldungen senden, wird die Verwendung von
--id=$$ (PPID) empfohlen.
Beachten Sie, dass die Infrastruktur der Systemprotokollierung (zum Beispiel systemd beim Warten an /dev/log) den Anmeldedaten lokaler Sockets folgen könnte, um die in der Meldung angegebene Prozesskennung außer Kraft zu setzen. logger(1) ist in der Lage, dessen Socket-Anmeldedaten auf die angegebene Kennung zu setzen, was aber voraussetzt, dass Sie über Root-Rechte verfügen und ein Prozess mit der angegebenen Prozesskennung existiert. Anderenfalls werden die Anmeldedaten des Sockets nicht verändert und das Problem stillschweigend ignoriert.
--journald[=Datei]
schreibt einen
systemd-Journaleintrag. Der Eintrag wird aus der angegebenen
Datei gelesen, ansonsten aus der Standardeingabe. Jede Zeile muss mit einem Feld beginnen, das von
journald akzeptiert wird; siehe
systemd.journal-fields(7) für Details. Es ist im Allgemeinen eine gute Idee, ein MESSAGE_ID-Feld zu verwenden, da es das Auffinden von Einträgen erleichtert. Beispiele:
logger --journald <<end
MESSAGE_ID=67feb6ffbaf24c5cbec13c008dd72309
MESSAGE=The dogs bark, but the caravan goes on.
DOGS=bark
CARAVAN=goes on
end
logger --journald=Eintrag.txt
Beachten Sie, dass --journald Werte anderer Optionen ignoriert, wie beispielsweise die Priorität. Falls die Priorität nötig ist, muss sie innerhalb der Eingabe stehen und das Feld PRIORITY verwenden. Die einfache Ausführung von journalctl(1) wird das MESSAGE-Feld anzeigen. Mit journalctl --output json-pretty werden die übrigen Felder angezeigt.
Um Zeilenumbrüche in MESSAGE zu verwenden, geben Sie MESSAGE mehrfach an. Dies wird als Spezialfall behandelt, andere Felder werden als ein Feld im Journal gespeichert, falls sie mehrfach auftauchen.
--msgid msgid
Setzt das MSGID-Feld gemäß RFC 5424 <https://tools.ietf.org/html/rfc5424>. Beachten Sie, dass innerhalb von MSGID kein Leerzeichen zulässig ist. Diese Option wird nur verwendet, wenn zugleich --rfc5424 angegeben ist, anderenfalls wird sie stillschweigend ignoriert.
-n, --server Server
schreibt auf den angegebenen fernen Systemprotokoll-Server statt in den Systemprotokoll-Socket. Außer wenn --udp oder --tcp angegeben ist, versucht logger zuerst, UDP zu verwenden; wenn dies fehlschlägt, wird eine TCP-Verbindung versucht.
--no-act
führt alles aus, außer dem Schreiben der Meldung in das Systemprotokoll und Entfernen der Verbindung zum Journal. Diese Option kann zusammen mit --stderr für Testzwecke verwendet werden.
--octet-count
verwendet die Octet-Counting-Framing-Methode gemäß RFC 6587 <https://tools.ietf.org/html/rfc6587> zum Senden von Meldungen. Wenn diese Option nicht verwendet wird, wird kein Framing mit UDP verwendet und nicht-transparentes Framing (auch als »Octet Stuffing« bekannt) mit TCP.
-P, --port Port
verwendet den angegebenen Port. Wenn diese Option nicht angegeben ist, wird standardmäßig syslog für UDP- und syslog-conn für TCP-Verbindungen verwendet.
-p, --priority Priorität
überträgt die Meldung mit der angegebenen Priorität in das Protokoll. Die Priorität kann numerisch oder als Einrichtung.Stufe-Paar angegeben werden. Zum Beispiel protokolliert -p local3.info die Meldung als informativ in der Einrichtung local3. Die Voreinstellung ist user.notice.
--prio-prefix
schaut in jeder aus der Standardeingabe gelesenen Zeile nach einem Systemprotokoll-Präfix. Dieses Präfix ist eine Dezimalzahl in spitzen Klammern, die sowohl Einrichtung als auch Stufe enthält. Für die Ermittlung der Zahl wird die Einrichtung mit 8 multipliziert und dann die Stufe addiert. Zum Beispiel wird
local0.info (was Einrichtung=16 und Stufe=6 bedeutet) zu
<134>.
Falls das Präfix keine Einrichtung enthält,wird standardmäßig die durch die Option -p angegebene verwendet. Wenn kein Präfix angegeben ist, wird die Zeile mit der durch -p angegebenen Priorität protokolliert.
Diese Option wirkt sich nicht auf eine Befehlszeilenmeldung aus.
--rfc3164
verwendet das BSD-Syslog-Protokoll gemäß RFC 3164 <https://tools.ietf.org/html/rfc3164> zur Übermitteln von Meldungen an einen fernen Server.
--rfc5424[=ohne]
verwendet das Syslog-Protokoll gemäß
RFC 5424 <https://tools.ietf.org/html/rfc5424> zur Übermitteln von Meldungen an einen fernen Server. Das optionale Argument
ohne kann eine durch Kommata getrennte Liste der folgenden Werte sein:
notq,
notime,
nohost.
Der Wert notq unterdrückt die Zeit-Qualitäts-strukturierten Daten in der übermittelten Meldung. Die Zeitqualitätsinformationen zeigen an, ob die lokale Uhr synchronisiert war, sowie die maximale Anzahl an Mikrosekunden, die der Zeitstempel abweichen könnte. Die Zeitqualität wird auch automatisch unterdrückt, wenn --sd-id timeQuality angegeben wird.
Der Wert notime (der notq impliziert) unterdrückt den im ISO-8601-Format vorliegenden vollständigen Absender-Zeitstempel, einschließlich Mikrosekunden und Zeitzone.
Der Wert nohost unterdrückt die gethostname(2)-Information aus dem Meldungs-Header.
Das RFC-5424-Protokoll ist für logger seit Version 2.26 die Vorgabe.
-s, --stderr
schreibt die Meldung in die Standardfehlerausgabe und überträgt sie auch in das Systemprotokoll.
--sd-id Name[@Stellen]
gibt eine strukturierte Datenelement-Kennung für einen Meldungs-Header gemäß RFC 5424 an. Die Option muss vor
--sd-param angegeben werden, um ein neues Element einzuleiten. Die Anzahl der strukturierten Datenelemente ist unbegrenzt. Für die Kennung (Name plus mögliche
@Ziffern) wird die Groß-/Kleinschreibung nicht berücksichtigt. Sie identifiziert eindeutig den Typ und Zweck des Elements. Eine Kennung darf nicht mehrmals in einer Meldung vorhanden sein. Der
@Ziffern-Teil ist für benutzerdefinierte, nicht standardisierte Kennungen erforderlich.
logger erzeugt derzeit nur das standardisierte timeQuality-Element. RFC 5424 beschreibt auch die Elemente origin (mit den Parametern ip, enterpriseId, software und swVersion) und meta (mit den Parametern sequenceId, sysUpTime und language). Diese Elementkennungen können ohne das Suffix @Ziffern angegeben werden.
--sd-param Name=Wert
gibt einen strukturierten Datenelement-Parameter an, ein Name-Wert-Paar. Die Option muss nach
--sd-id angegeben werden. Sie darf für das gleiche Element mehrmals angegeben werden. Beachten Sie, dass die Anführungszeichen um den
Wert erforderlich sind und in der Befehlszeile maskiert werden müssen.
logger --rfc5424 --sd-id zoo@123 \
--sd-param tiger="hungry" \
--sd-param zebra="running" \
--sd-id manager@123 \
--sd-param onMeeting="yes" \
"this is message" erzeugt:
<13>1 2015-10-01T14:07:59.168662+02:00 ws kzak - - [timeQuality tzKnown="1" isSynced="1" syncAccuracy="218616"][zoo@123 tiger="hungry" zebra="running"][manager@123 onMeeting="yes"] this is message
-S, --size Größe
legt die maximal erlaubte
Größe der Meldung fest. Die Vorgabe ist 1KiB an Zeichen, welches die in RFC 3164 beschriebene traditionell verwendete Grenze ist. Mit RFC 5424 wurde diese Grenze flexibler. Eine gute Annahme ist, dass RFC-5424-Empfänger mindestens eine 4KiB große Meldung verarbeiten können.
Die meisten Empfänger akzeptieren Meldungen, die größer als 1KiB sind, über jedes Syslog-Übertragungsprotokoll. Daher wird logger in jedem Fall durch die Option --size beeinflusst (nicht nur, wenn --rfc5424 angegeben wurde).
Beachten Sie: Die Begrenzung der Meldungsgröße gilt für die gesamte Meldung einschließlich des Systemprotokoll-Headers. Die Größe dieses Headers hängt von den gewählten Optionen und der Länge des Hostnamens ab. Als Faustregel gilt, dass Header üblicherweise nicht länger als 50 bis 80 Zeichen sind. Wenn Sie die maximale Meldungsgröße wählen, müssen Sie sicherstellen, dass der Empfänger diese maximale Größe ebenfalls unterstützt, ansonsten könnten Meldungen gekürzt werden. Als Faustregel gilt wiederum, dass eine Meldungsgröße von 4 KiB generell funktionieren sollte, aber bei größeren Meldungen sollte zuvor geprüft werden, ob es funktioniert.
--socket-errors[=Modus]
gibt Fehler zu Unix-Socket-Verbindungen aus. Der
Modus kann einer der Werte
off,
on oder
auto sein. Im Modus
auto erkennt
logger, ob
systemd der Init-Prozess ist und sorgt dafür, dass
/dev/log in der frühen Systemstartphase verwendet werden kann. Andere Init-Systeme ohne
/dev/log verursachen keine Fehler, was identisch zur Meldungsbehandlung mit dem Systemaufruf
openlog(3) ist. Der Befehl
logger(1) hat vor Version 2.26 openlog verwendet und war daher nicht in der Lage, an Unix-Sockets gesendete und verloren gegangene Meldungen zu erkennen.
Der Standardmodus ist auto. Wenn Fehler deaktiviert sind, werden verlorene Meldungen nicht übertragen, wodurch der Aufruf von logger(1) einen erfolgreichen Rückgabewert liefert.
-T, --tcp
verwendet nur ein Datenstromprotokoll (TCP). Standardmäßig wird versucht, zum in
/etc/services definierten Port
syslog-conn zu verbinden, welcher oft
601 ist.
Siehe auch --server und --socket, um anzugeben, wohin verbunden werden soll.
-t, --tag Markierung
versieht jede zu protokollierende Zeile mit der angegebenen Markierung. Die Standardmarkierung ist der Name des im Terminal angemeldeten Benutzers (oder ein auf der effektiven Benutzerkennung basierender Benutzername).
-u, --socket Socket
schreibt auf den angegebenen Socket statt auf den Systemprotokoll-Socket.
--
beendet die Argumentliste und ermöglicht dadurch, dass die Meldung mit einem Bindestrich (-) beginnen kann.
-h, --help
zeigt einen Hilfetext an und beendet das Programm.
-V, --version
zeigt Versionsinformationen an und beendet das Programm.