use
constant
APPENDER_THRESHOLDS_ADJUST_LOGOFF
=> 7;
use
constant
APPENDER_THRESHOLDS_ADJUST_LOGON
=> -7;
sub
new {
my
(
$class
,
%param
) =
@_
;
my
$self
= {
log
=>
undef
,
loglevel
=>
$param
{loglevel} ||
undef
,
};
bless
(
$self
,
$class
);
$self
->_init_log();
return
$self
;
}
sub
_init_log {
my
$self
=
shift
;
my
$conf
=
undef
;
if
(
$self
->{loglevel}) {
$conf
=
qq(
# Loglevel set by user
log4perl.category.Parse::Dia::SQL = $self->{loglevel}, screen-main
log4perl.appender.screen-main = Log::Log4perl::Appender::Screen
log4perl.appender.screen-main.stderr = 1
log4perl.appender.screen-main.layout = PatternLayout
log4perl.appender.screen-main.layout.ConversionPattern=[%p] %m%n
)
;
}
else
{
$conf
=
q(
# Main logger for Parse::Dia::SQL
log4perl.category.Parse::Dia::SQL = INFO, screen-main
log4perl.appender.screen-main = Log::Log4perl::Appender::Screen
log4perl.appender.screen-main.stderr = 1
log4perl.appender.screen-main.layout = PatternLayout
log4perl.appender.screen-main.layout.ConversionPattern=[%p] %m%n
# Separate logger for Output::*
log4perl.category.Parse::Dia::SQL::Output = INFO, screen-output
log4perl.appender.screen-output = Log::Log4perl::Appender::Screen
log4perl.appender.screen-output.stderr = 1
log4perl.appender.screen-output.layout = PatternLayout
log4perl.appender.screen-output.layout.ConversionPattern=[%p] %m%n
log4perl.additivity.Parse::Dia::SQL::Output = 0
# Separate logger for Utils.pm
log4perl.category.Parse::Dia::SQL::Utils = INFO, screen-utils
log4perl.appender.screen-utils = Log::Log4perl::Appender::Screen
log4perl.appender.screen-utils.stderr = 1
log4perl.appender.screen-utils.layout = PatternLayout
log4perl.appender.screen-utils.layout.ConversionPattern=[%p] %m%n
log4perl.additivity.Parse::Dia::SQL::Utils = 0
)
;
}
Log::Log4perl::init( \
$conf
);
$Log::Log4perl::caller_depth
= 1;
return
1;
}
sub
get_logger {
my
(
$self
,
$name
) =
@_
;
return
Log::Log4perl::->get_logger(
$name
);
}
sub
log_off {
my
$self
=
shift
;
_init_log()
if
( !Log::Log4perl->initialized() );
Log::Log4perl->appender_thresholds_adjust(APPENDER_THRESHOLDS_ADJUST_LOGOFF);
return
1;
}
sub
log_on {
my
$self
=
shift
;
_init_log()
if
( !Log::Log4perl->initialized() );
Log::Log4perl->appender_thresholds_adjust(APPENDER_THRESHOLDS_ADJUST_LOGON);
return
1;
}
1;