zeek/doc/scripting/framework_logging_factorial_02.bro
Daniel Thayer 084bf498d8 Remove references to line numbers in tutorial text
Removed line numbers in the text because it was difficult to keep these
up-to-date.  Changed some wording and moved sample scripts before (rather
than after) the descriptive text in order to keep it easy to understand.
2014-06-20 16:13:39 -05:00

35 lines
780 B
Text

module Factor;
export {
# Append the value LOG to the Log::ID enumerable.
redef enum Log::ID += { LOG };
# Define a new type called Factor::Info.
type Info: record {
num: count &log;
factorial_num: count &log;
};
}
function factorial(n: count): count
{
if ( n == 0 )
return 1;
else
return ( n * factorial(n - 1) );
}
event bro_init()
{
# Create the logging stream.
Log::create_stream(LOG, [$columns=Info]);
}
event bro_done()
{
local numbers: vector of count = vector(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
for ( n in numbers )
Log::write( Factor::LOG, [$num=numbers[n],
$factorial_num=factorial(numbers[n])]);
}