6. Формат сообщений
Описание формата сообщений Syslog приводится с помощью обозначений ABNF (Augmented Backus-Naur Form) в соответствии с RFC 5234:
SYSLOG-MSG = HEADER SP STRUCTURED-DATA [SP MSG] HEADER = PRI VERSION SP TIMESTAMP SP HOSTNAME SP APP-NAME SP PROCID SP MSGID PRI = "<" PRIVAL ">" PRIVAL = 1*3DIGIT в диапазоне 0 .. 191 VERSION = NONZERO-DIGIT 0*2DIGIT HOSTNAME = NILVALUE / 1*255PRINTUSASCII APP-NAME = NILVALUE / 1*48PRINTUSASCII PROCID = NILVALUE / 1*128PRINTUSASCII MSGID = NILVALUE / 1*32PRINTUSASCII TIMESTAMP = NILVALUE / FULL-DATE "T" FULL-TIME FULL-DATE = DATE-FULLYEAR "-" DATE-MONTH "-" DATE-MDAY DATE-FULLYEAR = 4DIGIT DATE-MONTH = 2DIGIT в диапазоне 01-12 DATE-MDAY = 2DIGIT в диапазонах 01-28, 01-29, 01-30, 01-31, в зависимости от количества дней в месяце FULL-TIME = PARTIAL-TIME TIME-OFFSET PARTIAL-TIME = TIME-HOUR ":" TIME-MINUTE ":" TIME-SECOND [TIME-SECFRAC] TIME-HOUR = 2DIGIT в диапазоне 00-23 TIME-MINUTE = 2DIGIT в диапазоне 00-59 TIME-SECOND = 2DIGIT в диапазоне 00-59 TIME-SECFRAC = "." 1*6DIGIT TIME-OFFSET = "Z" / TIME-NUMOFFSET TIME-NUMOFFSET = ("+" / "-") TIME-HOUR ":" TIME-MINUTE STRUCTURED-DATA = NILVALUE / 1*SD-ELEMENT SD-ELEMENT = "[" SD-ID *(SP SD-PARAM) "]" SD-PARAM = PARAM-NAME "=" %d34 PARAM-VALUE %d34 SD-ID = SD-NAME PARAM-NAME = SD-NAME PARAM-VALUE = UTF-8-STRING одиночные символы %d34 ("), '\' и ']' ДОЛЖНЫ быть экранированы предшествующим символом '\' SD-NAME = 1*32PRINTUSASCII исключая '=', %d32 (пробел), ']', %d34 (") MSG = MSG-ANY / MSG-UTF8 MSG-ANY = *OCTET начинается не с метки порядка байтов (BOM - Byte Order Mask) MSG-UTF8 = BOM UTF-8-STRING BOM = %xEF.BB.BF UTF-8-STRING = *OCTET строка символов UTF-8, как определено в RFC 3629 OCTET = %d00-255 SP = %d32 PRINTUSASCII = %d33-126 NONZERO-DIGIT = %d49-57 DIGIT = %d48 / NONZERO-DIGIT NILVALUE = "-"