Log-Log4Cli
view release on metacpan or search on metacpan
lib/Log/Log4Cli.pm view on Meta::CPAN
package Log::Log4Cli;
use 5.006;
use strict;
use warnings;
use parent qw(Exporter);
use Term::ANSIColor qw(colored);
BEGIN {
*CORE::GLOBAL::die = sub {
my $msg = join(' ', grep { defined } @_) || "Died";
$msg .= " at " . join(' line ', (caller)[1,2]);
&die_fatal($msg, 255);
};
}
our $VERSION = '0.22'; # Don't forget to change in pod below
our @EXPORT = qw(
die_fatal
die_info
die_alert
log_fd
log_fatal
log_error
log_alert
log_warn
log_info
log_debug
log_trace
);
our $COLORS = {
FATAL => 'bold red',
ERROR => 'red',
ALERT => 'bold yellow',
WARN => 'yellow',
INFO => 'cyan',
DEBUG => 'blue',
TRACE => 'magenta'
};
our $LEVEL = 0;
our $POSITIONS = undef;
our $COLOR; # color on/off switcher; defined below
my $FD; # descriptor to write messages; defined below
sub _die($$$$) {
my $log_msg = $_[2] . (defined $_[3] ? "$_[3]. " : "") .
"Exit $_[0], ET " . (time - $^T) . "s\n";
if ($^S) {
# inside eval block
my ($file, $line) = (caller(1))[1,2];
CORE::die bless {
ERR_MESSAGE => ($_[3] ? "$_[3]" : "Died") . " at $file line $line.",
EXIT_CODE => $_[0],
FILE => $file,
LINE => $line,
LOG_MESSAGE => $_[1] ? $log_msg : '',
}, 'Log::Log4Cli::Exception';
} else {
print $FD $log_msg if ($_[1]);
exit $_[0];
}
}
sub _pfx($) {
my ($S, $M, $H, $d, $m, $y) = localtime(time);
( run in 2.403 seconds using v1.01-cache-2.11-cpan-364913b4093 )