--- nfo/perl/libs/Log/Dispatch/Config.pm 2003/12/05 16:18:45 1.1 +++ nfo/perl/libs/Log/Dispatch/Config.pm 2003/12/10 17:29:40 1.3 @@ -122,25 +122,27 @@ return undef unless defined $format; # caller() called only when necessary - my $needs_caller = $format =~ /%[FLP]/; + my $needs_caller = $format =~ /%[FLPS]/; return sub { my %p = @_; $p{p} = delete $p{level}; $p{m} = delete $p{message}; $p{n} = "\n"; $p{'%'} = '%'; + require POSIX; + $p{i} = POSIX::getpid(); if ($needs_caller) { my $depth = 0; $depth++ while caller($depth) =~ /^Log::Dispatch/; $depth += :Dispatch::Config::CallerDepth; - @p{qw(P F L)} = caller($depth); + @p{qw(P F L S)} = caller($depth); } my $log = $format; $log =~ s{ (%d(?:{(.*?)})?)| # $1: datetime $2: datetime fmt - (?:%([%pmFLPn])) # $3: others + (?:%([%pmFLPniS])) # $3: others }{ if ($1 && $2) { _strftime($2); @@ -261,6 +263,8 @@ %P package %n newline (\n) %% % itself + %i process-id, returns POSIX::getpid() + %S subroutine Note that datetime (%d) format is configurable by passing C fmt in braket after %d. (I know it looks quite messy, but its