Zonemaster::Engine::Logger - class that holds
Zonemaster::Engine::Logger::Entry objects.
my $logger = Zonemaster::Engine::Logger->new;
$logger->add( TAG => {some => 'arguments'});
- new
- Construct a new object.
my $logger = Zonemaster::Engine::Logger->new;
- entries
- A reference to an array holding Zonemaster::Engine::Logger::Entry
objects.
- callback($coderef)
- If this attribute is set, the given code reference will be called every
time a log entry is added. The referenced code will be called with the
newly created entry as its single argument. The return value of the called
code is ignored.
If the called code throws an exception, and the exception is
not an object of class Zonemaster::Engine::Exception (or a subclass of
it), the exception will be logged as a system message at default level
"CRITICAL" and the callback attribute
will be cleared.
If an exception that is of (sub)class
Zonemaster::Engine::Exception is called, the exception will simply be
rethrown until it reaches the code that started the test run that logged
the message.
- add($tag, $argref,
$module, $testcase)
- Adds an entry with the given tag and arguments to the logger object.
$module is optional and will default
to $Zonemaster::Engine::Logger::MODULE_NAME if
not set.
$testcase is optional and will default
to $Zonemaster::Engine::Logger::TEST_CASE_NAME
if not set.
The variables
$Zonemaster::Engine::Logger::MODULE_NAME and
$Zonemaster::Engine::Logger::TEST_CASE_NAME can
be dynamically set to change the default module ("System") or
test case name ("Unspecified").
- json([$level])
- Returns a JSON-formatted string with all the stored log entries. If an
argument is given and is a known severity level, only messages with at
least that level will be included.
- get_max_level
- Returns the maximum log level from the entire log as the level
string.
- _check_filter($entry)
- Apply the "logfilter" defined rules to
the entry. See "logfilter" in Zonemaster::Engine::Profile.