Log::Log4perl::Appender::Socket - phpMan

Command: man perldoc info search(apropos)  


Sections
NAME SYNOPSIS DESCRIPTION EXAMPLE LICENSE AUTHOR
NAME
    Log::Log4perl::Appender::Socket - Log to a socket

SYNOPSIS
        use Log::Log4perl::Appender::Socket;

        my $appender = Log::Log4perl::Appender::Socket->new(
          PeerAddr => "server.foo.com",
          PeerPort => 1234,
        );

        $appender->log(message => "Log me\n");

DESCRIPTION
    This is a simple appender for writing to a socket. It relies on
    IO::Socket::INET and offers all parameters this module offers.

    Upon destruction of the object, pending messages will be flushed and the
    socket will be closed.

    If the appender cannot contact the server during the initialization
    phase (while running the constructor "new"), it will "die()".

    If the appender fails to log a message because the socket's "send()"
    method fails (most likely because the server went down), it will try to
    reconnect once. If it succeeds, the message will be sent. If the
    reconnect fails, a warning is sent to STDERR and the "log()" method
    returns, discarding the message.

    If the option "silent_recovery" is given to the constructor and set to a
    true value, the behaviour is different: If the socket connection can't
    be established at initialization time, a single warning is issued. Every
    log attempt will then try to establish the connection and discard the
    message silently if it fails. If you don't even want the warning, set
    the "no_warning" option to a true value.

    Connecting at initialization time may not be the best option when
    running under Apache1 Apache2/prefork, because the parent process
    creates the socket and the connections are shared among the forked
    children--all the children writing to the same socket could intermingle
    messages. So instead of that, you can use "defer_connection" which will
    put off making the connection until the first log message is sent.

EXAMPLE
    Write a server quickly using the IO::Socket::INET module:

        use IO::Socket::INET;

        my $sock = IO::Socket::INET->new(
            Listen    => 5,
            LocalAddr => 'localhost',
            LocalPort => 12345,
            Proto     => 'tcp');

        while(my $client = $sock->accept()) {
            print "Client connected\n";
            while(<$client>) {
                print "$_\n";
            }
        }

    Start it and then run the following script as a client:

        use Log::Log4perl qw(:easy);

        my $conf = q{
            log4perl.category                  = WARN, Socket
            log4perl.appender.Socket           = Log::Log4perl::Appender::Socket
            log4perl.appender.Socket.PeerAddr  = localhost
            log4perl.appender.Socket.PeerPort  = 12345
            log4perl.appender.Socket.layout    = SimpleLayout
        };

        Log::Log4perl->init(\$conf);

        sleep(2);

        for(1..10) {
            ERROR("Quack!");
            sleep(5);
        }

LICENSE
    Copyright 2002-2013 by Mike Schilli <m AT perlmeister.com> and Kevin Goess
    <cpan AT 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 AT lists.net

    Authors (please contact them via the list above, not directly): Mike
    Schilli <m AT perlmeister.com>, Kevin Goess <cpan AT 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.


Generated by phpMan Author: Che Dong On Apache Under GNU General Public License - MarkDown Format
2026-05-23 07:39 @216.73.217.24 CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 TransitionalValid CSS!

^_back to top