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 )