NAME¶
Log::Log4perl::JavaMap - maps java log4j appenders to Log::Dispatch classes
SYNOPSIS¶
###############################
log4j.appender.FileAppndr1 = org.apache.log4j.FileAppender
log4j.appender.FileAppndr1.File = /var/log/onetime.log
log4j.appender.FileAppndr1.Append = false
log4j.appender.FileAppndr1.layout = org.apache.log4j.PatternLayout
log4j.appender.FileAppndr1.layout.ConversionPattern=%d %4r [%t] %-5p %c %x - %m%n
###############################
DESCRIPTION¶
If somebody wants to create an appender called
"org.apache.log4j.ConsoleAppender", we want to translate it to
Log::Dispatch::Screen, and then translate the log4j options into Log::Dispatch
parameters..
What's Implemented¶
(Note that you can always use the Log::Dispatch::* module. By 'implemented' I
mean having a translation class that translates log4j options into the
Log::Dispatch options so you can use log4j rather than log4perl syntax in your
config file.)
Here's the list of appenders I see on the current (6/2002) log4j site.
These are implemented
ConsoleAppender - Log::Dispatch::Screen
FileAppender - Log::Dispatch::File
RollingFileAppender - Log::Dispatch::FileRotate (by Mark Pfeiffer)
JDBCAppender - Log::Log4perl::Appender::DBI
SyslogAppender - Log::Dispatch::Syslog
NTEventLogAppender - Log::Dispatch::Win32EventLog
These should/will/might be implemented
DailyRollingFileAppender -
SMTPAppender - Log::Dispatch::Email::MailSender
These might be implemented but they don't have corresponding classes in
Log::Dispatch (yet):
NullAppender
TelnetAppender
These might be simulated
LF5Appender - use Tk?
ExternallyRolledFileAppender - catch a HUP instead?
These will probably not be implemented
AsyncAppender
JMSAppender
SocketAppender - (ships a serialized LoggingEvent to the server side)
SocketHubAppender
ROLL YOUR OWN¶
Let's say you've in a mixed Java/Perl environment and you've come up with some
custom Java appender with behavior you want to use in both worlds,
"myorg.customAppender". You write a Perl appender with the same
behavior "Myorg::CustomAppender". You want to use one config file
across both applications, so the config file will have to say
'myorg.customAppender'. But the mapping from "myorg.customAppender"
to "Myorg::CustomAppender" isn't in this JavaMap class, so what do
you do?
In your Perl code, before you call
Log::Log4perl::init(), do this:
$Log::Log4perl::JavaMap::user_defined{'myorg.customAppender'} =
'Myorg::CustomAppender';
and you can use 'myorg.customAppender' in your config file with impunity.
SEE ALSO¶
http://jakarta.apache.org/log4j/docs/
LICENSE¶
Copyright 2002-2013 by Mike Schilli <m@perlmeister.com> and Kevin Goess
<cpan@goess.org>.
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
AUTHOR¶
Please contribute patches to the project on Github:
http://github.com/mschilli/log4perl
Send bug reports or requests for enhancements to the authors via our
MAILING LIST (questions, bug reports, suggestions/patches):
log4perl-devel@lists.sourceforge.net
Authors (please contact them via the list above, not directly): Mike Schilli
<m@perlmeister.com>, Kevin Goess <cpan@goess.org>
Contributors (in alphabetical order): Ateeq Altaf, Cory Bennett, Jens Berthold,
Jeremy Bopp, Hutton Davidson, Chris R. Donnelly, Matisse Enzer, Hugh Esco,
Anthony Foiani, James FitzGibbon, Carl Franks, Dennis Gregorovic, Andy
Grundman, Paul Harrington, Alexander Hartmaier David Hull, Robert Jacobson,
Jason Kohles, Jeff Macdonald, Markus Peter, Brett Rann, Peter Rabbitson, Erik
Selberg, Aaron Straup Cope, Lars Thegler, David Viner, Mac Yang.