Loaders¶
Predefined Loaders¶
Bro/Zeek log loader.
-
zlogging.loader.parse(filename, *args, **kwargs)[source]¶ Parse Bro/Zeek log file.
- Parameters
filename (PathLike[str]) – Log file name.
*args – See
parse_json()andparse_ascii()for more information.**kwargs – See
parse_json()andparse_ascii()for more information.args (Any) –
kwargs (Any) –
- Return type
- Returns
The parsed JSON log data.
- Raises
ParserError – If the format of the log file is unknown.
-
zlogging.loader.parse_ascii(filename, parser=None, type_hook=None, enum_namespaces=None, bare=False, *args, **kwargs)[source]¶ Parse ASCII log file.
- Parameters
filename (PathLike[str]) – Log file name.
parser (
ASCIIParser, optional) – Parser class.type_hook (
dictmappingstrandBaseTypeclass, optional) – Bro/Zeek type parser hooks. User may customise subclasses ofBaseTypeto modify parsing behaviours.enum_namespaces (
List[str], optional) – Namespaces to be loaded.bare (
bool, optional) – IfTrue, do not loadzeeknamespace by default.*args – Variable length argument list.
**kwargs – Arbitrary keyword arguments.
args (Any) –
kwargs (Any) –
- Return type
- Returns
The parsed ASCII log data.
-
zlogging.loader.parse_json(filename, parser=None, model=None, *args, **kwargs)[source]¶ Parse JSON log file.
- Parameters
filename (PathLike[str]) – Log file name.
parser (
JSONParser, optional) – Parser class.model (
Modelclass, optional) – Field declarations forJSONParser, as in JSON logs the field typing information are omitted by the Bro/Zeek logging framework.*args – Variable length argument list.
**kwargs – Arbitrary keyword arguments.
args (Any) –
kwargs (Any) –
- Return type
- Returns
The parsed JSON log data.
-
zlogging.loader.loads(data, *args, **kwargs)[source]¶ Parse Bro/Zeek log string.
- Parameters
data (AnyStr) – Log string as binary or encoded string.
*args – See
loads_json()andloads_ascii()for more information.**kwargs – See
loads_json()andloads_ascii()for more information.args (Any) –
kwargs (Any) –
- Return type
- Returns
The parsed JSON log data.
- Raises
ParserError – If the format of the log file is unknown.
-
zlogging.loader.loads_ascii(data, parser=None, type_hook=None, enum_namespaces=None, bare=False, *args, **kwargs)[source]¶ Parse ASCII log string.
- Parameters
data (AnyStr) – Log string as binary or encoded string.
parser (
ASCIIParser, optional) – Parser class.type_hook (
dictmappingstrandBaseTypeclass, optional) – Bro/Zeek type parser hooks. User may customise subclasses ofBaseTypeto modify parsing behaviours.enum_namespaces (
List[str], optional) – Namespaces to be loaded.bare (
bool, optional) – IfTrue, do not loadzeeknamespace by default.*args – Variable length argument list.
**kwargs – Arbitrary keyword arguments.
args (Any) –
kwargs (Any) –
- Return type
- Returns
The parsed ASCII log data.
-
zlogging.loader.loads_json(data, parser=None, model=None, *args, **kwargs)[source]¶ Parse JSON log string.
- Parameters
data (AnyStr) – Log string as binary or encoded string.
parser (
JSONParser, optional) – Parser class.model (
Modelclass, optional) – Field declarations forJSONParser, as in JSON logs the field typing information are omitted by the Bro/Zeek logging framework.*args – Variable length argument list.
**kwargs – Arbitrary keyword arguments.
args (Any) –
kwargs (Any) –
- Return type
- Returns
The parsed JSON log data.
-
zlogging.loader.load(file, *args, **kwargs)[source]¶ Parse Bro/Zeek log file.
- Parameters
file (BinaryFile) – Log file object opened in binary mode.
*args – See
load_json()andload_ascii()for more information.**kwargs – See
load_json()andload_ascii()for more information.args (Any) –
kwargs (Any) –
- Return type
- Returns
The parsed JSON log data.
- Raises
ParserError – If the format of the log file is unknown.
-
zlogging.loader.load_ascii(file, parser=None, type_hook=None, enum_namespaces=None, bare=False, *args, **kwargs)[source]¶ Parse ASCII log file.
- Parameters
file (BinaryFile) – Log file object opened in binary mode.
parser (
ASCIIParser, optional) – Parser class.type_hook (
dictmappingstrandBaseTypeclass, optional) – Bro/Zeek type parser hooks. User may customise subclasses ofBaseTypeto modify parsing behaviours.enum_namespaces (
List[str], optional) – Namespaces to be loaded.bare (
bool, optional) – IfTrue, do not loadzeeknamespace by default.*args – Variable length argument list.
**kwargs – Arbitrary keyword arguments.
args (Any) –
kwargs (Any) –
- Return type
- Returns
The parsed ASCII log data.
-
zlogging.loader.load_json(file, parser=None, model=None, *args, **kwargs)[source]¶ Parse JSON log file.
- Parameters
file (BinaryFile) – Log file object opened in binary mode.
parser (
JSONParser, optional) – Parser class.model (
Modelclass, optional) – Field declarations forJSONParser, as in JSON logs the field typing information are omitted by the Bro/Zeek logging framework.*args – Variable length argument list.
**kwargs – Arbitrary keyword arguments.
args (Any) –
kwargs (Any) –
- Return type
- Returns
The parsed JSON log data.
-
class
zlogging.loader.ASCIIParser(type_hook=None, enum_namespaces=None, bare=False)[source]¶ Bases:
zlogging.loader.BaseParserASCII log parser.
- Parameters
- Variables
-
parse_file(file, model=None)[source]¶ Parse log file.
- Parameters
file (BinaryFile) – Log file object opened in binary mode.
model (Optional[Type[Model]]) – Field declrations of current log. This parameter is only kept for API compatibility with its base class
BaseLoader, and will NOT be used at runtime.
- Returns
- The parsed log as a
Modelper line.
- Return type
- Warns
ASCIIParserWarning – If the ASCII log file exited with error, see
ASCIIInfo.exit_with_errorfor more information.
-
parse_line(line, lineno=0, model=None, separator=b'\\t', parser=None)[source]¶ Parse log line as one-line record.
- Parameters
- Return type
- Returns
The parsed log as a plain
dict.- Raises
ASCIIPaserError – If
parseris not provided; or failed to serialiselineas ASCII.
-
class
zlogging.loader.JSONParser(model=None)[source]¶ Bases:
zlogging.loader.BaseParserJSON log parser.
- Parameters
model (
Modelclass, optional) – Field declrations forJSONParser, as in JSON logs the field typing information are omitted by the Bro/Zeek logging framework.- Variables
model (
Modelclass, optional) – Field declrations forJSONParser, as in JSON logs the field typing information are omitted by the Bro/Zeek logging framework.- Warns
JSONParserWarning – If
modelis not specified.
Abstract Base Loaders¶
-
class
zlogging.loader.BaseParser[source]¶ Bases:
objectBasic log parser.