mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00

The &log keyword now operates as discussed: - When associated with individual record fields, it defines them as being logged. - When associated with a complete record type, it defines all fields to be logged. - When associated with a record extension, it defines all added fields to be logged. Note that for nested record types, the inner fields must likewise be declared with &log. Consequently, conn_id is now declared with &log in bro.init. Vectors are now allowed to be logged and will be recorded as an ordered set of items.
38 lines
1 KiB
Text
38 lines
1 KiB
Text
#
|
|
# @TEST-EXEC: bro %INPUT >output
|
|
# @TEST-EXEC: btest-diff output
|
|
|
|
redef LogAscii::output_to_stdout = T;
|
|
redef LogAscii::separator = "|";
|
|
redef LogAscii::empty_field = "EMPTY";
|
|
redef LogAscii::unset_field = "NOT-SET";
|
|
redef LogAscii::header_prefix = "PREFIX<>";
|
|
|
|
module SSH;
|
|
|
|
export {
|
|
redef enum Log::ID += { SSH };
|
|
|
|
type Log: record {
|
|
t: time;
|
|
id: conn_id; # Will be rolled out into individual columns.
|
|
status: string &optional;
|
|
country: string &default="unknown";
|
|
b: bool &optional;
|
|
} &log;
|
|
}
|
|
|
|
event bro_init()
|
|
{
|
|
Log::create_stream(SSH, [$columns=Log]);
|
|
|
|
local cid = [$orig_h=1.2.3.4, $orig_p=1234/tcp, $resp_h=2.3.4.5, $resp_p=80/tcp];
|
|
|
|
Log::write(SSH, [$t=network_time(), $id=cid, $status="success"]);
|
|
Log::write(SSH, [$t=network_time(), $id=cid, $country="US"]);
|
|
Log::write(SSH, [$t=network_time(), $id=cid, $status="failure", $country="UK"]);
|
|
Log::write(SSH, [$t=network_time(), $id=cid, $country="BR"]);
|
|
Log::write(SSH, [$t=network_time(), $id=cid, $b=T, $status="failure", $country=""]);
|
|
|
|
}
|
|
|