Skip to the content.

Home

jc.parsers.syslog_bsd

jc - JSON Convert Syslog RFC 3164 string parser

This parser accepts a single syslog line string or multiple syslog lines separated by newlines. A warning message to STDERR will be printed if an unparsable line is found unless --quiet or quiet=True is used.

Usage (cli):

$ echo '<34>Oct 11 22:14:15 mymachine su: su root...' | jc --syslog-bsd

Usage (module):

import jc
result = jc.parse('syslog_bsd', syslog_command_output)

Schema:

[
  {
    "priority":                   integer/null,
    "date":                       string,
    "hostname":                   string,
    "tag":                        string/null,
    "content":                    string,
    "unparsable":                 string,  # [0]
  }
]

[0] this field exists if the syslog line is not parsable. The value
    is the original syslog line.

Examples:

$ cat syslog.txt | jc --syslog-bsd -p
[
  {
    "priority": 34,
    "date": "Oct 11 22:14:15",
    "hostname": "mymachine",
    "tag": "su",
    "content": "'su root' failed for lonvick on /dev/pts/8"
  }
]

$ cat syslog.txt | jc --syslog-bsd -p -r
[
  {
    "priority": "34",
    "date": "Oct 11 22:14:15",
    "hostname": "mymachine",
    "tag": "su",
    "content": "'su root' failed for lonvick on /dev/pts/8"
  }
]

parse

def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict]

Main text parsing function

Parameters:

data:        (string)  text data to parse
raw:         (boolean) unprocessed output if True
quiet:       (boolean) suppress warning messages if True

Returns:

List of Dictionaries. Raw or processed structured data.

Parser Information

Compatibility: linux, darwin, cygwin, win32, aix, freebsd

Source: jc/parsers/syslog_bsd.py

Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com)