Ich habe mir RFC5424 angesehen , um den formal angegebenen Marker zu finden, der ein Syslog-Ereignis beendet.
Leider konnte ich es nicht finden. Wenn ich also einen kleinen Syslog-Server implementieren wollte, der auf bestimmte Nachrichten reagiert, was ist der Marker, der eine Nachricht beendet (ja, normalerweise ist ein Ereignis eine einzelne Zeile, aber ich konnte es in der Spezifikation einfach nicht finden).
Klarstellung :
Ich nenne es Ereignis, weil ich eine Nachricht einer einzelnen Zeile zuordne. Ein Ereignis könnte möglicherweise so etwas wie sein
Type: foo
Source: webservers
Eine Botschaft an mich lautet:
Type: foo Source: webservers
http://tools.ietf.org/html/rfc5424#section-6 definiert:
SYSLOG-MSG = HEADER SP STRUCTURED-DATA [SP MSG]
weder STRUCTURED-DATA
noch MSG
sagen Sie mir, wie diese Felder enden. Insbesondere MSG
wird definiert, MSG-ANY / MSG-UTF8
was sich auf praktisch alles ausdehnt. Es gibt nichts, was besagt, dass eine neue Zeile das Ende markiert (oder ein 8
oder ein a
für diese Angelegenheit). Anhand der Beispielnachrichten (Abschnitt 6.5):
Dies ist eine gültige Nachricht oder zwei gültige Nachrichten, je nachdem, ob Sie sagen, dass ein HEADER
Element in keinem MSG
Element vorkommen darf :
buchstäbliche Leerzeichen
<34>1 2003-10-11T22:14:15.003Z mymachine.example.com su - ID47 - <34>1 2003-10-11T22:14:15.003Z mymachine.example.com su - ID47
|
is this an end marker?
\t
steht für eine Registerkarte
<34>1 2003-10-11T22:14:15.003Z mymachine.example.com su - ID47 -\t<34>1 2003-10-11T22:14:15.003Z mymachine.example.com su - ID47
|
is this an end marker?
\n
steht für eine Newline
<34>1 2003-10-11T22:14:15.003Z mymachine.example.com su - ID47 -\n<34>1 2003-10-11T22:14:15.003Z mymachine.example.com su - ID47
|
is this an end marker?
Entweder habe ich den RFC falsch verstanden oder es wird einfach nichts erwähnt. Die im RFC angegebenen Größen geben nur an, mit welcher Mindestlänge ich arbeiten kann ...
ANTWORTEN? : Anscheinend habe ich den falschen RFC gelesen. Man muss die spezifischen Transport-RFCs gehen und sich daran halten http://tools.ietf.org/html/rfc5426#section-3.1 alles für den UDP-Transport sagt.
@joechip: Da Ihre Kommentare und Antworten dazu führen, dass ich tatsächlich ein bisschen mehr in den Transport-RFCs lese, werde ich Ihre Antwort gerne akzeptieren, wenn Sie sie ein bisschen in diese Richtung aktualisieren :)
]
aber ein\n
könnte innerhalbPARAM-VALUE
eines seinSD-ELEMENT