From: Kevin G. <ke...@go...> - 2003-02-27 00:26:05
|
Sagar, it looks like log4perl is taking the values from your config hash and converting them into text strings: Log::Log4perl::Config.pm @text = map { $_ . '=' . $config->{$_} } keys %{$config}; so $r is being munged into a string. We can look into fixing that. I was going to suggest you could use the other older method of init and do something like this $stash_package::r = $r; Log::Log4perl::init( \<<'EOL' log4perl.logger.Main = INFO, apache_log log4perl.appender.apache_log = Log::Dispatch::ApacheLog log4perl.appender.apache_log.apache = sub {$stash_package::r } ... EOL ); but there is another problem in Log4perl. Log::Dispatch expects the 'level' param to be a word, we are passing an integer, which suggests that the hash %Log::Log4perl::Levels::L4P_TO_LD should have values that are words not integers, and that this stuff in Levels.pm add_priority("WARN", WARN_INT, 4, 3); should actually be add_priority("WARN", WARN_INT, 4, 'warning'); Mike, you added that fourth parameter as part of "log dispatch level fix" back on 11/8/2002, can you take a look at that when you get a minute? Sag...@ub... wrote: > Hi, > > I'm having a problem trying to use Log4perl with the Log::Dispatch::ApacheLog appender. I haven't managed to get it down to a simple test case yet, but i'm wondering whether the error i'm getting is something that twigs with anyone on this list. > > The configuration i'm using is: > > > 'log4perl.logger.Main' => 'WARN, apache_log', > 'log4perl.logger.Screen' => 'WARN, apache_log', > 'log4perl.logger' => 'WARN, apache_log', > 'log4perl.appender.apache_log' => 'Log::Dispatch::ApacheLog', > 'log4perl.appender.apache_log.apache' => $r, > 'log4perl.appender.apache_log.Threshold' => 'WARN', > 'log4perl.appender.apache_log.layout' => 'Log::Log4perl::Layout::PatternLayout', > 'log4perl.appender.apache_log.layout.ConversionPattern' => '[%d] %m', > > > > Where $r is either Apache->request or Apache->request->server (i.e. i get the problem in both cases). > > The error i get when trying to create my logger is: > > > [Wed Feb 26 18:09:34 2003] [error] The 'apache' parameter to Log::Dispatch::ApacheLog::new does not have the method: 'log' > Params::Validate::__ANON__('The \'apache\' parameter to Log::Dispatch::ApacheLog::new doe...') called at /home/shahsag/my_tree/links/cpan/lib/Params/Validate.pm line 415 > Params::Validate::_validate_one_param('Apache::Server=SCALAR(0x1c77f20)','HASH(0xa266b4)','The \'apache\' parameter') called at /home/shahsag/my_tree/links/cpan/lib/Params/Validate.pm line 258 > Params::Validate::validate('ARRAY(0xa26510)','HASH(0xa264ec)') called at /home/shahsag/my_tree/links/cpan/lib/Log/Dispatch/ApacheLog.pm line 25 > Log::Dispatch::ApacheLog::new('undef','min_level','debug','apache','Apache::Server=SCALAR(0x1c77f20)','Threshold','WARN','name','apache_log',...) called at /home/shahsag/my_tree/links/cpan/lib/Log/Log4perl/Appender.pm line 68 > Log::Log4perl::Appender::new('Log::Log4perl::Appender','Log::Dispatch::ApacheLog','name','apache_log','apache','Apache::Server=SCALAR(0x1c77f20)','Threshold','WARN') called at /home/shahsag/my_tree/links/cpan/lib/Log/Log4perl/Config.pm line 209 > Log::Log4perl::Config::_init('Log::Log4perl::Config','HASH(0x1c99dd4)') called at /home/shahsag/my_tree/links/cpan/lib/Log/Log4perl/Config.pm line 35 > Log::Log4perl::Config::init('Log::Log4perl::Config','HASH(0x1c99dd4)') called at /home/shahsag/my_tree/links/cpan/lib/Log/Log4perl.pm line 142 > Log::Log4perl::init('Log::Log4perl','HASH(0x1c99dd4)') called at /home/shahsag/my_tree/links/CORE/lib/Log/OPG.pm line 705 > > > > However i run a $r->can('log') before trying to create my logger and it's all okay. Am i doing something wrong with my configuration? If not, any ideas about why/how my Apache object is becomming mangled? > > thanks > > Sagar > > Visit our website at http://www.ubswarburg.com > > This message contains confidential information and is intended only > for the individual named. If you are not the named addressee you > should not disseminate, distribute or copy this e-mail. Please > notify the sender immediately by e-mail if you have received this > e-mail by mistake and delete this e-mail from your system. > > E-mail transmission cannot be guaranteed to be secure or error-free > as information could be intercepted, corrupted, lost, destroyed, > arrive late or incomplete, or contain viruses. The sender therefore > does not accept liability for any errors or omissions in the contents > of this message which arise as a result of e-mail transmission. If > verification is required please request a hard-copy version. This > message is provided for informational purposes and should not be > construed as a solicitation or offer to buy or sell any securities or > related financial instruments. > > > > ------------------------------------------------------- > This SF.net email is sponsored by: Scholarships for Techies! > Can't afford IT training? All 2003 ictp students receive scholarships. > Get hands-on training in Microsoft, Cisco, Sun, Linux/UNIX, and more. > www.ictp.com/training/sourceforge.asp > _______________________________________________ > log4perl-devel mailing list > log...@li... > https://lists.sourceforge.net/lists/listinfo/log4perl-devel -- Happy Trails . . . Kevin M. Goess (and Anne and Frank) 904 Carmel Ave. Albany, CA 94706 (510) 525-5217 |