Hi Duncan,

I overcame the hardcoding of filenames by storing them in the app config, like 
so:

In your MyApp.pm:

__PACKAGE__->setup;
__PACKAGE__->log( Log::Log4perl::Catalyst->new( 
__PACKAGE__->path_to(__PACKAGE__->config->{path_to_log4perl_conf})->stringify ) 
);

Then in the main app config:

path_to_log4perl_conf: 'Log4perl_prod.conf'
Log4Perl_filename: '/some/path/to/logfile.log'

Then in ./Log4perl_prod.conf (root of the Cat app):

log4perl.appender.LOGFILE.filename=sub { return 
MyApp->config->{Log4Perl_filename} }

Hope this helps,
Anthony Gladdish


From: Duncan Garland [mailto:[email protected]]
Sent: 15 May 2013 16:54
To: [email protected]
Subject: [Catalyst] Log::Log4perl::Catalyst

Hi,

Has anybody got some examples about how to use this.

It looks like you just have to put the following lines in the main package 
before __PACKAGE__->setup():

use Log::Log4perl::Catalyst;
__PACKAGE__->log(Log::Log4perl::Catalyst->new('/path/to/log4perl.conf'));

That works up to a point in that the log messages are formatted as I want. 
However they always go to the STDERR and not to the file given in 
log4perl.conf. I've used the conf file in a test, so I know it works outside 
Catalyst. I'm using the Catalyst development server, does that over-ride the 
logger?

The other thing is that I don't really want to hardcode the filename. It should 
be in the application's conf file. However, if I just stick it in there as so:

 <Log4perl>
  conf_file 
/var/www/mymercedesservice.co.uk/fcgi/catalyst/mbfl2/lib/mbfl2/log4perl.conf
</Log4perl>

I can't access it via __PACKAGE__->config->{Log4perl}->{conf_file};
until after setup() has run.

Does that matter?

Thanks

Duncan

_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/

Reply via email to