my $zerolevel = 8; sub level_for_l4p { my $level = 0; 1 while caller( $level++ ); return $level - $zerolevel; } sub msgpfx_for_l4p { my ( $l, $m, $c, $p, $caller_level ) = @_; my ( $unused, $filename, $line, @unused ) = caller( $caller_level + 1 ); return "$filename:$line:"; } Log::Log4perl::init('log4perl.conf');