#log.conf: log4perl.rootLogger=ERROR, LOGFILE log4perl.appender.LOGFILE=Log::Log4perl::Appender::File log4perl.appender.LOGFILE.filename=/var/log/myerrs.log log4perl.appender.LOGFILE.mode=append log4perl.appender.LOGFILE.layout=PatternLayout log4perl.appender.LOGFILE.layout.ConversionPattern=[%r] %F %L %c - %m%n # in your perl-script: use Log::Log4perl; Log::Log4perl->init("log.conf"); # Anywhere you log: package blah; use Log::Log4perl; sub new() { ... $self->{debug} = $debug; ... } sub method { my $self=shift; my($param) = @_; my $log = Log::Log4perl->get_logger("blah"); $log->debug("Debug ...") if $self->{debug}; $log->info("Info ...") if $ $self->{debug}; $log->error("Error ...") if $self->{debug};