|
From: Chris A. <ch...@nu...> - 2005-09-11 05:20:08
|
Mike Schilli wrote:
>On Fri, 9 Sep 2005, Chris Anderson wrote:
>
>
>
>>It looks rather simple to filter based on a level, however with each
>>child dynamically needing a different filename while main initializes
>>I'm not clear on how the filter would need to be setup.
>>
>>
>
>Alternatively, you could have the child change its appender file:
>
> use Log::Log4perl qw(:easy);
>
> my $conf = q(
> log4perl.category = DEBUG, Logfile
> log4perl.appender.Logfile = Log::Log4perl::Appender::File
> log4perl.appender.Logfile.filename = test.log
> log4perl.appender.Logfile.layout = Log::Log4perl::Layout::PatternLayout
> log4perl.appender.Logfile.layout.ConversionPattern = %d %F{1} %L> %m %n
> );
>
> Log::Log4perl->init(\$conf);
>
> for(1..3) {
> my $pid = fork();
>
> die "Can't fork" unless defined $pid;
>
> if($pid == 0) {
> # Child, switch appender file to test.log.PID
> my $app = Log::Log4perl->appender_by_name("Logfile");
> my $old = $app->filename();
> $app->file_switch($app->filename() . ".$$");
>
> DEBUG "Child $$";
> sleep (3);
> exit;
> }
> }
>
> print "parent\n";
> wait() for (1..5);
> print "Done.\n";
>
>
>
ah, that clears things up very well. Thank you.
>-- Mike
>
>Mike Schilli
>m...@pe...
>
>
|