in reply to close_xs is not a valid Sys::Syslog macro

A quick glance at the source for Sys::Syslog shows that somebody needs to call closelog_xs() not close_xs().

Perhaps your Syslog.pm file is from a different version than your Syslog dynamic library (.so or .dll file)? Or perhaps you didn't install the dynamic library and the module brokenly doesn't notice?

The Changes file notes "[BUGFIX] CPAN-RT#21516: disconnect_log() now correctly calls closelog_xs()" at release 0.19 so perhaps you just need to upgrade.

- tye        

Replies are listed 'Best First'.
Re^2: close_xs is not a valid Sys::Syslog macro (UtS,L)
by Anonymous Monk on Feb 03, 2009 at 17:09 UTC
    But, all test scripts work without errors in same system.
      I bet your test scripts do not define SIG{__DIE__}, and your production script does. I just a SIG{__DIE__} handler to an old script, and suddenly I started getting the close_xs error. I added "return if $^S;" to the top of my handler, and the issue went away. At least with Syslog.pm version 0.18, the close_xs call is made within an eval.