> What you think is a 'logger' is really an appender in Log4perl lingo. An
> appender has no concept of a level like 'debug', only loggers do.

I see, and that's why it also can't understand about layouts.

> The reason why you get the error message 'on an undefined value' is an
> internal autoload mechanism within the appender that's not defined in
> your case. The error message is confusing and needs to be fixed, what it
> should say instead is that logdebug() doesn't exist.

I see.

> Ideally, you would integrate your logging needs into the main log4perl
> configuration -- can you explain in more detail why this isn't possible?

Maybe it is and I just don't understand Log4perl well enough. 

We basically have an application which is running permanently (kind of a
request
server). It accepts requests, processes them, and returns the results.
The processing
of a single requests typically takes between a couple of minutes, not
more than a 
few hours. The whole application logs its activity to a logfile and to
stdout. This
is what we have so far, and it is implemented via easy_init (which is,
well, easy
to use, but maybe not flexible enough):

    Log::Log4perl->easy_init(
      {level  =>  $log_level,
       file   =>  'STDOUT',
       layout =>  '%.1p %d{HH:mm} %M(%L) %m%n'
      },
      {level  =>  $log_level,
       file   => ">$logfile",
       layout => '%.1p %d{dd.MM. HH:mm:ss (EEE)} %M(%L) %m%n'
      }
    );

Now I would like to incorporate the possibility that in addition to that
normal, 
continually going logfile, the logs occuring to each request should be
written
into a separate, request-specific logfile, so that, if we hav 100
requests on a
day, we would end up having 100 extra logfiles in addition to the main
logfile.
Each of these extra logfiles is named after the request. This means that
whenever
a new request arrives, we have to create a new logfile. Since the
requests are
handled in parallel (but non-preemtive, i.e. no threads involved), we
have a
central "logging handler" which knows which request is the currently
active one,
and sends each logging event to the standard log, plus to the
request-specific one.

Any suggestion how I could implement this?

Ronald
-- 
Ronald Fischer <rona...@eml.cc>
+  If a packet hits a pocket on a socket on a port, 
+  and the bus is interrupted and the interrupt's not caught,
+  then the socket packet pocket has an error to report.
+               (cited after Peter van der Linden)


------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
log4perl-devel mailing list
log4perl-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/log4perl-devel

Reply via email to