NAME

Log::Log4perl::Level - Predefined log levels

SYNOPSIS

use Log::Log4perl::Level;
print $ERROR, "\n";

# -- or --

use Log::Log4perl qw(:levels);
print $ERROR, "\n";

DESCRIPTION

Log::Log4perl::Level simply exports a predefined set of Log4perl log levels into the caller's name space. It is used internally by Log::Log4perl. The following scalars are defined:

$OFF
$FATAL
$ERROR
$WARN
$INFO
$DEBUG
$TRACE
$ALL

Log::Log4perl also exports these constants into the caller's namespace if you pull it in providing the :levels tag:

use Log::Log4perl qw(:levels);

This is the preferred way, there's usually no need to call Log::Log4perl::Level explicitly.

The numerical values assigned to these constants are purely virtual, only used by Log::Log4perl internally and can change at any time, so please don't make any assumptions. You can test for numerical equality by directly comparing two level values, that's ok:

if( get_logger()->level() == $DEBUG ) {
    print "The logger's level is DEBUG\n";
}

But if you want to figure out which of two levels is more verbose, use Log4perl's own comparator:

if( Log::Log4perl::Level::isGreaterOrEqual( $level1, $level2 ) ) {
    print Log::Log4perl::Level::to_level( $level1 ), 
        " is equal or more verbose than ", 
        Log::Log4perl::Level::to_level( $level2 ), "\n";
}

If the caller wants to import level constants into a different namespace, it can be provided with the use command:

use Log::Log4perl::Level qw(MyNameSpace);

After this $MyNameSpace::ERROR, $MyNameSpace::INFO etc. will be defined accordingly.

Numeric levels and Strings

Level variables like $DEBUG or $WARN have numeric values that are internal to Log4perl. Transform them to strings that can be used in a Log4perl configuration file, use the c<to_level()> function provided by Log::Log4perl::Level:

use Log::Log4perl qw(:easy);
use Log::Log4perl::Level;

    # prints "DEBUG"
print Log::Log4perl::Level::to_level( $DEBUG ), "\n";

To perform the reverse transformation, which takes a string like "DEBUG" and converts it into a constant like $DEBUG, use the to_priority() function:

use Log::Log4perl qw(:easy);
use Log::Log4perl::Level;

my $numval = Log::Log4perl::Level::to_priority( "DEBUG" );

after which $numval could be used where a numerical value is required:

Log::Log4perl->easy_init( $numval );

LICENSE

Copyright 2002-2026 by Mike Schilli <m@perlmeister.com> and Kevin Goess <cpan@goess.org>.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.