From: Mike S. <m...@pe...> - 2011-09-20 07:41:44
|
On Mon, 19 Sep 2011, David Christensen wrote: > I would prefer to enable/ disable TraceApp based on $ENV{REMOTE_ADDR} > rather than doing all the work and throwing non-192.168.0.34 hits down > /dev/null, but I couldn't figure out how to implement this idea. Hi David, you can use Log4perl's custom filters. If you add log4perl.filter.MyFilter = sub { $ENV{REMOTE_ADDR} eq '192.168.0.34' } log4perl.appender.TraceApp.Filter = MyFilter to your configuration, it'll suppress all messages to the appender that aren't from your test client. The Log::Log4perl::Filter manpage explains their use in detail. Hope that helps! -- -- Mike Mike Schilli m...@pe... > log4perl-devel: > > I'm working on a web application and would like to log TRACE priority > messages related to hits from my development machine (IP address > 192.168.0.34). This is the relevant portion of my configuration file: > > 2011-09-19 12:31:51 dpchrist@p43400e ~ > $ grep TraceApp perl-src/50-Dpchrist-CMS/demo/conf/log4perl.conf > log4perl.logger = TRACE, InfoApp, TraceApp > log4perl.appender.TraceApp = Log::Log4perl::Appender::File > log4perl.appender.TraceApp.filename = sub { $ENV{REMOTE_ADDR} eq > '192.168.0.34' ? $Mysite::CONF{-log_dir} . '/trace.log' : '/dev/null' } > log4perl.appender.TraceApp.mode = append > log4perl.appender.TraceApp.layout = PatternLayout > log4perl.appender.TraceApp.layout.ConversionPattern = > %d{yyyyMMdd-HHmmss.SSS} %p %M (%F{1} %L) %m{chomp}%n > log4perl.appender.TraceApp.Threshold = TRACE > > |