Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Contact Us
Online Help
Domain Status
Man Pages

Virtual Servers

Topology Map

Server Agreement
Year 2038

USA Flag



Man Pages

Manual Reference Pages  -  TIE::SYSLOG (3)

.ds Aq ’


Tie::Syslog - Tie a filehandle to Syslog.




v2.00 is a complete rewrite of Tie::Syslog. If you used v1.x and something broke after upgrade, please report the problem back and I’ll try to fix it asap. Thanks.


    use Tie::Syslog;

    $Tie::Syslog::ident  = "my logging tag";
    $Tie::Syslog::logopt = "pid,ndelay";

    # Tie STDOUT to Syslog, so that every print()ed message will be logged
    tie *STDOUT, Tie::Syslog, {
        facility => LOG_LOCAL0,
        priority => LOG_INFO,

    # Now tie STDERR also, getting parameters from the tied STDOUT
    tie *STDERR, { tied *STDOUT };

    # ...or...

    # tie STDERR with defaults from tied STDOUT, but override priority:
    tie *STDERR, { tied *STDOUT }, {
        priority => LOG_ERR,

    # Compatibility with old configuration style:

    tie *STDOUT, Tie::Syslog,
        local0.error,         # facility.loglevel
        myname,               # identity
        pid,ndelay,           # Other Sys::Syslog options, comma-separated
        unix;                 # setlogsock socket type: unix or inet

    tie *STDERR, Tie::Syslog,
        local0.warning,       # facility.loglevel
        myname,               # USE THE SAME AS ABOVE!
        pid,ndelay,           # USE THE SAME AS ABOVE!
        unix;                 # USE THE SAME AS ABOVE!

    # Tying by copying from another tied handle is not supported in
    # old-compatibility-mode

    # old-compatibility-mode defaults to local0.error

    # socket type is IGNORED


This module lets you tie a filehandle to Sys::Syslog, providing an easy way to redirect messages to system logs.

    $Tie::Syslog::ident  = DEBUG :: myprocess;
    $Tie::Syslog::logopt = pid,ndelay;

    tie *DEBUG, Tie::Syslog, {
        facility => LOG_LOCAL0,
        priority => LOG_DEBUG,

    print DEBUG "This is a debug message - wont probably get to system logs.";

By tying STDOUT and/or STDERR you can easily redirect all messages to system logs, including those of warn() and die().

Tipically, you’ll want to tie STDOUT with a lower priority than STDERR.



Identity set for logging. <B>This is a global optionB>, and will be valid from the moment you set it onward. The default value is the last field of $0 split on ’/’.


Logging options. These are standard Sys::Syslog logopts. See Sys::Syslog man page for details. <B>This is a global optionB>, default is ’pid,ndelay’.


One of the default Sys::Syslog facilities available on your system. See Sys::Syslog man page for details. You can have different facilities for different filehandles, but this is not recommended, and will prevent Tie::Syslog from calling closelog() (see CAVEATS for details).

You can redefine a the facility for a given filehandle on the fly:

    my $fho = tied *MYFH;

    # better:

    (tied *MYFH)->facility(LOG_MAIL);

    # better yet: dont do it

but please note that this is <B>against Sys::Syslog rule:B>
o "The Fourth Rule of Sys::Syslog is: One facility, one priority." (from Sys::Syslog man page).


One of the default Sys::Syslog priorities available on your system. See Sys::Syslog man page for details. You can have different priorities for different filehandles.

You can redefine the priority for a given filehandle on the fly:

    my $fho = tied *MYFH;

    # better:

    (tied *MYFH)->priority(LOG_CRIT);


o We set the most permissive mask for log levels, so that nothing should be filtered by Sys::Syslog itself, but some messages may still be filtered, according to your syslog daemon configuration. Consult your local syslog daemon documentation.
o <B>We do not call B>closelog()<B>B> in case multiple facilities are in use

In general, openlog() is called automatically whenever syslog() is called on a new facility (although we call it explicitly on tie()). Since closelog() would work just once and on the last opened connetion to syslog, it could close a connection completely unrelated to the filehandle currently being closed/untied/destroyed. <B>In case you tied multiple filehandlesB> over multiple faiclities (you shouldn’t, see Sys::Syslog for details), closelog() won’t be called at all.

o ident and/or logopt should be set once, before tying handles.

If change these variables after tying handles, the behavior is undetermined. At best, nothing should change; or settings could change if another openlog() is called afterwards, but don’t rely on this. Also, if settings change, they will affect all tied filehandles. For these reasons, either:
o Set them once at the beginning, or
o if you’re tying two or more handles <B>using old-style syntaxB>, use the same values for all of them.

o Old method ExtendedSTDERR() is no-op by default.

It is still supported for backward compatibility, but warn() and die() print by default to STDERR so there should be no need to change them directly.

o We do not call setlogsock()


Log priorities, facilities and valid values for logopt are listed in Sys::Syslog man page.

Read syslog(3) for details on syslog.


Broc Seib, bseib at - up to 1.07

Giacomo Montagner, <kromg at> - from 2.00 onward.


Please report any bugs or feature requests to bug-tie-syslog at, or through the web interface at <>. I’will be notified, and then you’ll automatically be notified of progress on your bug as I make changes.


You can find documentation for this module with the perldoc command.

    perldoc Tie::Syslog

You can also look for information at:
o RT: CPAN’s request tracker (report bugs here)


o AnnoCPAN: Annotated CPAN documentation


o CPAN Ratings


o Search CPAN



Many thanks to Broc Seib, who wrote this module back in 1999.


Copyright (C) 1999-2001 Broc Seib

Copyright (C) 2012 Giacomo Montagner.

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

See for more information.

Search for    or go to Top of page |  Section 3 |  Main Index

perl v5.20.3 TIE::SYSLOG (3) 2014-04-30

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.