From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

NAME

Log::Log4Cli -- Lightweight logger for command line tools

CI Coverage Status CPAN version

VERSION

Version 0.22

SYNOPSIS

$Log::Log4Cli::COLORS->{DEBUG} = 'green'; # redefine color (Term::ANSIColor notation)
$Log::Log4Cli::LEVEL = 4; # set loglevel
$Log::Log4Cli::POSITIONS = 1; # force file:line marks (also enables if loglevel > 4)
log_fd(\*STDOUT); # print to STDOUT (STDERR by default)
log_error { "blah-blah, it's an error" };
$Log::Log4Cli::COLOR = 0; # now colors disabled
my $guts = { some => "value" };
log_trace { # block executed when appropriate level enabled only
require Data::Dumper;
return "Guts:\n" . Data::Dumper->Dump([$guts]);
};
die_info 'All done', 0;

DESCRIPTION

Lightweight, but sufficient and user friendly logging for command line tools with minimal impact on performance, optional configuration and no non-core dependencies.

EXPORT

All subroutines described below are exported by default.

SUBROUTINES

die_fatal, die_alert, die_info

die_fatal "Something terrible happened", 8;

Log message and exit with provided code. In eval blocks Carp::croak used instead of exit(). All arguments are optional. If second arg (exit code) omitted die_fatal, die_alert and die_info will exit with 127, 0 and 0 respectively.

log_fatal, log_error, log_alert, log_warn, log_info, log_debug, log_trace

log_error { "Something went wrong!" };

Execute passed code block and write it's return value if loglevel permit so. Set $Log::Log4Cli::COLOR to false value to disable colors.

log_fd

Get/set file descriptor for log messages. STDERR is used by default.

LOG LEVELS

Only builtin loglevels supported:

FATAL -1 'bold red',
ERROR 0 'red',
ALERT 0 'bold yellow',
WARN 1 'yellow',
INFO 2 'cyan',
DEBUG 3 'blue',
TRACE 4 'magenta'

Colors may be changed, see "SYNOPSIS". Default loglevel is ERROR (0).

SEE ALSO

Log::Dispatch, Log::Log4perl

Term::ANSIColor

LICENSE AND COPYRIGHT

Copyright 2016-2018 Michael Samoglyadov.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.