Log::Log4perl::Appender::Socket::UNIX- Log to a Unix Domain Socket


        use Log::Log4perl::Appender::Socket::UNIX;

        my $appender = Log::Log4perl::Appender::Socket::UNIX->new(
                Socket => '/var/tmp/myprogram.sock'

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


This is a simple appender for writing to a unix domain socket. It relies on Socket and only logs to an existing socket - ie. very useful to always log debug streams to the socket.

The appender tries to stream to a socket. The socket in questions is beeing created by the client who wants to listen, once created the messages are coming thru.


Write a client quickly using the Socket module:

        use Socket;

        my $s = "/var/tmp/myprogram.sock";

        unlink($s) or die("Failed to unlin socket - check permissions.\n");

        # be sure to set a correct umask so that the appender is allowed to stream to:
        # umask(000);

        socket(my $socket, PF_UNIX, SOCK_DGRAM, 0);
        bind($socket, sockaddr_un($s));

        while (1) {
                while ($line = <$socket>) {
                        print $line;


Copyright 2012 by Jean Stebens <>.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.