BEGIN { use_ok(
'Log::Abstraction'
) }
my
@log_array
;
my
$logger
= Log::Abstraction->new({
logger
=> \
@log_array
});
$logger
->debug(
'This is a debug message'
);
$logger
->info(
'This is an info message'
);
$logger
->notice(
'This is a notice message'
);
$logger
->trace(
'This is a trace message'
);
is_deeply(
\
@log_array
,
[
{
level
=>
'debug'
,
message
=>
'This is a debug message'
},
{
level
=>
'info'
,
message
=>
'This is an info message'
},
{
level
=>
'notice'
,
message
=>
'This is a notice message'
},
{
level
=>
'trace'
,
message
=>
'This is a trace message'
}
],
'Logged messages to array'
);
my
(
$fh
,
$filename
) = tempfile();
$logger
= Log::Abstraction->new(
$filename
);
$logger
->debug(
'File debug message'
);
$logger
->info(
'File info message'
);
open
my
$log_fh
,
'<'
,
$filename
or
die
"Could not open log file: $!"
;
my
@log_lines
= <
$log_fh
>;
close
$log_fh
;
like(
$log_lines
[0],
qr/DEBUG: Log::Abstraction/
,
'Logged debug message to file'
);
like(
$log_lines
[0],
qr/File debug message/
,
'Logged correct debug message to file'
);
like(
$log_lines
[1],
qr/INFO: Log::Abstraction/
,
'Logged info message to file'
);
like(
$log_lines
[1],
qr/File info message/
,
'Logged correct info message to file'
);
my
@code_log
;
$logger
= Log::Abstraction->new(
logger
=>
sub
{
push
@code_log
,
@_
});
$logger
->debug(
'Code debug message'
);
$logger
->info(
'Code info message'
);
diag(Data::Dumper->new([\
@code_log
])->Dump())
if
(
$ENV
{
'TEST_VERBOSE'
});
is_deeply(
\
@code_log
,
[
{
class
=>
'Log::Abstraction'
,
file
=>
't/30-basics.t'
,
line
=> 50,
level
=>
'debug'
,
message
=> [
'Code debug message'
]
}, {
class
=>
'Log::Abstraction'
,
file
=>
't/30-basics.t'
,
line
=> 51,
level
=>
'info'
,
message
=> [
'Code info message'
]
}
],
'Logged messages to code reference'
);
$logger
= Log::Abstraction->new(
syslog
=> {
type
=>
'unix'
},
script_name
=>
'test'
);
$logger
->
warn
({
warning
=>
'Syslog warning message'
});
@log_array
= ();
$logger
= Log::Abstraction->new({
logger
=> \
@log_array
});
$logger
->debug(
'This '
,
'is '
,
'a '
,
'list'
);
$logger
->
warn
(
'This '
,
'is '
,
'another '
,
'list'
);
$logger
->
warn
(
warning
=> [
'This '
,
'is '
,
'a '
,
'ref '
,
'to '
,
'a '
,
'list'
]);
diag(Data::Dumper->new([\
@log_array
])->Dump())
if
(
$ENV
{
'TEST_VERBOSE'
});
is_deeply(
\
@log_array
,
[
{
level
=>
'debug'
,
message
=>
'This is a list'
},
{
level
=>
'warn'
,
message
=>
'This is another list'
},
{
level
=>
'warn'
,
message
=>
'This is a ref to a list'
},
],
'Logged list messages to array'
);
done_testing();