log4perl.logger.path.to.package.function=DEBUG,CONSOLE #### log4perl.logger.path.to.package=DEBUG,CONSOLE #### log4perl.logger=DEBUG,CONSOLE #### sub complexFunction { my (%args) = @_; ... # deep inside some complex code { # create a new scope my $logger - get_logger((caller(0))[3] . "::complexBit"); ... $logger->debug("enzyme experiencing toxic reation..."); ... } # close scope, leaving that logger behind #### log4perl.logger.path.to.package.function.complexBit=DEBUG,COMLPEXFILE #### Log::Log4perl->init_and_watch('path/to/config', $delay);