# Log::Log4perl::JavaMap - maps java log4j appenders to Log::Dispatch cla... - perldoc - [phpMan]

## NAME
    [Log::Log4perl::JavaMap](https://www.chedong.com/phpMan.php/perldoc/Log%3A%3ALog4perl%3A%3AJavaMap/markdown) - maps java log4j appenders to [Log::Dispatch](https://www.chedong.com/phpMan.php/perldoc/Log%3A%3ADispatch/markdown) 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](https://www.chedong.com/phpMan.php/perldoc/Log%3A%3ADispatch%3A%3AScreen/markdown), and then translate the log4j options into [Log::Dispatch](https://www.chedong.com/phpMan.php/perldoc/Log%3A%3ADispatch/markdown)
    parameters..

### What's Implemented
    (Note that you can always use the [Log::Dispatch](https://www.chedong.com/phpMan.php/perldoc/Log%3A%3ADispatch/markdown)::* module. By 'implemented' I mean having a
    translation class that translates log4j options into the [Log::Dispatch](https://www.chedong.com/phpMan.php/perldoc/Log%3A%3ADispatch/markdown) 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](https://www.chedong.com/phpMan.php/perldoc/Log%3A%3ADispatch%3A%3AScreen/markdown)
        FileAppender        - [Log::Dispatch::File](https://www.chedong.com/phpMan.php/perldoc/Log%3A%3ADispatch%3A%3AFile/markdown)
        RollingFileAppender - [Log::Dispatch::FileRotate](https://www.chedong.com/phpMan.php/perldoc/Log%3A%3ADispatch%3A%3AFileRotate/markdown) (by Mark Pfeiffer)
        JDBCAppender        - [Log::Log4perl::Appender::DBI](https://www.chedong.com/phpMan.php/perldoc/Log%3A%3ALog4perl%3A%3AAppender%3A%3ADBI/markdown)
        SyslogAppender      - [Log::Dispatch::Syslog](https://www.chedong.com/phpMan.php/perldoc/Log%3A%3ADispatch%3A%3ASyslog/markdown)
        NTEventLogAppender  - [Log::Dispatch::Win32EventLog](https://www.chedong.com/phpMan.php/perldoc/Log%3A%3ADispatch%3A%3AWin32EventLog/markdown)

    These should/will/might be implemented

        DailyRollingFileAppender -
        SMTPAppender     - [Log::Dispatch::Email::MailSender](https://www.chedong.com/phpMan.php/perldoc/Log%3A%3ADispatch%3A%3AEmail%3A%3AMailSender/markdown)

    These might be implemented but they don't have corresponding classes in [Log::Dispatch](https://www.chedong.com/phpMan.php/perldoc/Log%3A%3ADispatch/markdown) (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](https://www.chedong.com/phpMan.php/perldoc/Myorg%3A%3ACustomAppender/markdown)". 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](https://www.chedong.com/phpMan.php/perldoc/Myorg%3A%3ACustomAppender/markdown)" isn't in this JavaMap class, so what do
    you do?

    In your Perl code, before you call [Log::Log4perl::init](https://www.chedong.com/phpMan.php/perldoc/Log%3A%3ALog4perl%3A%3Ainit/markdown)(), do this:

        $[Log::Log4perl::JavaMap::user_defined](https://www.chedong.com/phpMan.php/perldoc/Log%3A%3ALog4perl%3A%3AJavaMap%3A%3Auserdefined/markdown){'myorg.customAppender'} =
            '[Myorg::CustomAppender](https://www.chedong.com/phpMan.php/perldoc/Myorg%3A%3ACustomAppender/markdown)';

    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.

