2.45 2015-06-14 - Don't include threads and threads::shared in list of dependencies. This is only needed for Log::Dispatch::Syslog and is loaded at runtime as needed (which has its own issues but ...). Reported by Kent Fredric. RT #103392. 2.44 2014-10-18 - The fix for a buffered email output in the last release introduced a bug with _non-buffered_ email outputs. This would cause a fatal error during global destruction when the DESTROY method was called. Reported by Christ Hutchinson. RT #99474. 2.43 2014-10-05 - Fixed the thread locking in Log::Dispatch::Syslog (I hope). The previous version caused Perl to crash when per-thread locking was enabled. Note that I don't use threads so I haven't tested this. Patch by Sergio Fernández Muñoz. RT # 99208. - If a buffered email output is being destroyed during global destruction and still has messages in the buffer, we warn and do not attempt to send the messages. During global destruction, the package we use to send email may already be destroyed, leading to weird errors when we try to use it. Reported by Mark Overmeer. RT #97733. - In 2.42 I added the ability to pass a hashref for the socket parameter given to Log::Dispatch::Syslog, but I forgot to mention this here. This is necessary to support remote logging. Patch by David Coppit. RT #93045. 2.42 2014-08-12 - Added a Log::Dispatch->clone() method. This returns shallow clone. The outputs and callbacks are shared, but changes to outputs and callbacks in the clone do not affect the original, or vice versa. - Added Log::Dispatch->outputs() method. This returns all the output objects in a dispatch object. - Added Log::Dispatch->callbacks() method. This returns all the callback subs in a dispatch object. - The Syslog output now calls Sys::Syslog::setlogsock() every time a message is logged, since something else could have called it in between logging two messages. - Added a lock parameter to the Syslog output. If this is true, then logging is done in the scope of a per-thread lock. Reported by Cedric Carree and Franck Youssef. RT #67988 and #85013. - Replaced Class::Load with Module::Runtime. 2.41 2013-07-22 - An error is now thrown if you call Log::Dispatch->log without a level. Previously you'd just get a warning and then execution would continue (without logging anything). Patch by Ross Attrill. RT #87133. 2.40 2013-07-01 - Added a conflict entry for older Log::Dispatch::File::Stamped to the metadata. Patch by Karen Etheridge. RT #86215. 2.39 2013-04-21 - You can now pass a port option to the MailSender output. Patch by Whitney Jackson. 2.38 2013-04-14 - Fix test that used undeclared prereqs so it does not do that. 2.37 2013-04-14 - Moved Log::Dispatch::File constructor parameter validation moved to _basic_init() to facilitate proper subclassing. Patch by ether. RT #84545. 2.36 2013-04-08 - Added a very simple Log::Dispatch::Code output. This lets you log to a subroutine reference. - Added Sys::Syslog 0.25 as a prereq. This is a temporary fix to the problem of Log::Dispatch shipping lots of output modules with undeclared prereqs (so as not to require mod_perl, four email sending modules, etc.). In the future Log::Dispatch will be split into a core distro and a set of distros, one for each output that has prereqs. Reported by Michael Schwern. RT #84481. 2.35 2013-01-20 - Added a big warning about the potential for deadlocks in the documentation for Log::Dispatch::File::Locked. Patch by ether. 2.34 2012-12-08 - Fix a test bug that caused the tests to fail on all Perls before 5.16.0. 2.33 2012-12-07 - Added a 'syswrite' option to Log::Dispatch::File which causes all writes to use syswrite (so they're atomic). Patched by ether. RT #81669. - The File output's DESTROY method now checks to see if it's associated handle is open before trying to close it. Patch by Jeffrey Thalhammer. 2.32 2012-05-24 - Fix a test failure - test failed if you had 0.16 <= Sys::Syslog < 0.25 installed. - Added a kludgey test failure fix for failure on Cygwin. Patch by Christian Carey. RT #77364. 2.31 2012-05-21 - Added missing prereq - Class::Load. 2.30 2012-05-20 - Remove Sys::Syslog as a prereq, since you can use this distro perfectly well without it. Fixes RT #52065. - You can now pass a subroutine reference to the sugar methods like $dispatch->debug() and friends. Requested by Jeffrey Thalhammer. RT #77308. - Calling sugar methods like $dispatch->warn or $dispatch->crit did not normalize the log level, so the level would be passed to the outputs as "warn", not "warning". Reported by Karen Etheridge. RT #77203. 2.29 2011-03-18 - Add is_$level methods for compatibility with Log::Contextual. Patch by frew. 2.28 2010-12-13 - The Log::Dispatch module still had version 2.26 in the last release. Reported by Øyvind Skaar. RT #63876. 2.27 2010-10-16 - Fix docs on handling of arrays passed to ->debug, ->error, etc. Requested by Andrew Hanenkamp. RT #61400. - Allow an arrayref for the Syslog socket option. Requested by Paul Bennett. RT #57631. - License is now Artistic 2.0. 2.26 2009-09-22 - Doc updates. The 2.23 constructor API was still shown in all the output subclasses. Fixed by Jon Swartz. 2.25 2009-09-15 - Added a workaround for a weird tainting issue with Params::Validate. This caused a taint exception when a Log::Dispatch::Syslog was created under taint mode. Note that there is still a problem in Params::Validate itself, this is just a hack. 2.24 2009-09-13 - Simplified new constructor API (the 2.23 API is still silently supported but not documented): Log::Dispatch->new( outputs => [ [ 'File', ... ], [ 'Screen', ... ], ] ); Implemented by Jon Swartz. - All of the mail sending modules now warn unconditionally if sending mail fails. This removes the incorrect use of warnings::enabled() in some modules. RT #43516. 2.23 2009-09-12 - New constructor API that simplifies creating your Log::Dispatch object. Implemented by Jon Swartz. - Made name parameter optional. We now auto-generate a unique name if one is not given. Implemented by Jon Swartz. - Added a newline parameter that causes a newline to be added to each message, and updated the documentation regarding newlines. Implemented by Jon Swartz. - Removed repetitive boilerplate documentation from each output class. Implemented by Jon Swartz. - The level_names and level_numbers used internally are now computed once and shared between output objects. Implemented by Jon Swartz. - Updated repo url - now at http://hg.urth.org/hg/Log-Dispatch - Explicitly depend on Sys::Syslog 0.16. - Added warn as a synonym for warning. RT #44821. Requested by Dylan Martin. - Added an add_callback method to Log::Dispatch and Log::Dispatch::Output. This lets you add a new formatting callback after an object is created. Based on a patch from Ricardo Signes. RT #48283. - The Log::Dispatch docs mistakenly told you to provide a log() method when creating a new output class. RT #40561. - Made all modules have the same version as Log::Dispatch itself. 2.22 2008-11-11 - Fixed a bug where Log::Dispatch::Email would die when it tried to log under taint mode. Patch by Neil Hemingway. RT #40042. - Fixed a misuse of warnings::enabled(). Reported by Darian Patrick. RT #39784. - Syslog logging now requires Sys::Syslog 0.16+. - If you don't pass a socket argument to Log::Dispatch::Syslog, it does not call Sys::Syslog::setlogsock(), which is the preferred option for portability. * If any of the syslog calls die, this is trapped and the error is output as a warning if warnings are on. This is mostly a workaround for Sys::Sylog not handling utf-8. RT #35270 & #37397. This isn't backwards-compatible, but it's probably wrong for the logging code to die because it can't log (even though some other output modules still do). 2.21 2008-02-06 - Added log_and_die() and log_and_croak() methods. Patch by Yuval Kogman. 2.20 2007-11-02 - One of the tests failed on Perl 5.6.x. Thanks to Slaven Rezic for the report. 2.19 2007-11-01 - Switched to providing a traditional Makefile.PL as well as a Build.PL file. RT #27208. - When permissions are specified for a Log::Dispatch::File object, don't try to chmod the file unless the permissions of the file differ from what the file already has. Based on a patch by Kevin. RT #28151. - Require at least Perl 5.6.0. - Remove the tests for the email sending and exit codes, since the test had a heisenbug I could not understand. I _think_ the code in the email modules is correct, but the test isn't proving anything. - Added a binmode parameter for Log::Dispatch::File. Based on a patch by Angelo. RT #26063. 2.18 2007-05-12 - Log::Dispatch::ApacheLog should really now work under mod_perl 2, as well as mod_perl 1. RT #26910. 2.17 2007-03-31 - Log::Dispatch::ApacheLog should now work under mod_perl 2, as well as mod_perl 1. 2.16 2010-10-16 - Don't require IO::String for running the tests. Reported by Andreas Koenig. RT #23973. - Moved Test::More to build_requires. Suggested by Andreas Koenig. RT #23973. 2.15 2006-12-16 - Don't try to test compilation of L::D::Syslog unless Sys::Syslog is available. Patch by Kenichi Ishigaki. RT #23751. - Allow a subroutine reference as a log message when callin Log::Dispatch->log(). Suggested by Craig Manley. RT #23913. - Added Log::Dispatch::Null output, primarily for testing. 2.14 2006-11-18 This release only involves changes to the test suite. - Make sure we don't fail if Apache::Log is not installed on the system. RT #22791. Reported by Lee Goddard. - Separated out compilation tests from other tests. 2.13 2006-09-25 - No code changes, just added a SUPPORT section to the docs referring folks to RT for bug reports & patches. 2.12 2006-08-09 - The various email sending modules could overwrite if they were in buffered mode and they sent mail as a script exited. Reported by Dean Kopesky. - Doc tweaks. Make reference to "Log Levels" section in output module docs more explicit. RT #11224. 2.11 2005-07-27 - In tests, make sure filehandles are closed before reading or unlinking the file. Patch from Ron Savage. 2.10 2004-02-11 - No changes to the core code, just a change to the included Makefile.PL so it works with Module::Build 0.23, which breaks backwards compatibility (grr). - Fix a doc bug in Log::Dispatch::Syslog. It defaults to using a unix socket, not an inet socket. 2.09 2004-01-09 - Fix a test failure on Win32 platforms. The problem was in the test, not the code. Patch by David Viner. - Distro is now signed with Module::Signature. 2.08 2003-11-27 - Added Log::Dispatch->would_log method, which indicates whether logging will be done for a given log level. Suggested by Ruslan Zakirov. - Switched tests to use Test::More. 2.07 2003-09-27 - Added Log::Dispatch::File::Locked. Based on code from JAA Klunder. - Check all system call return values. - Fix warning from Log::Dispatch::File if it was loaded after Attribute::Handlers. Reported by Mike Schilli. - Fixed up POD to pass pod tests. 2.06 2003-05-01 "Arise ye workers from your slumbers Arise ye criminals of want For reason in revolt now thunders and at last ends the age of cant." - Added a permissions parameter to Log::Dispatch::File->new. Based on a patch from James FitzGibbon. 2.05 2003-04-18 - Changed a code construct that seems to provoke a bug for Meng Wong, but no one else ;) - Switched to Module::Build and removed interactive portion of installation process. - Log::Dispatch::Email::MailSender was causing Mail::Sender to send debug output to STDERR if warnings were on. Now it's not. 2.04 2003-03-21 - The close_after_write option didn't actually do anything. Fixed by JAA Klunder. 2.03 2003-02-27 - Log::Dispatch::ApacheLog would break if a log level was specified as a number. Reported by Kevin Goess. 2.02 2003-02-20 - Added close_after_write option to Log::Dispatch::File. Based on patch from JAA Klunder. 2.01 2002-06-21 - Added new module Log::Dispatch::Email::MailSender, provided by Joseph Annino. - Log::Dispatch::Output now contains "use Log::Dispatch". - Now requires Params::Validate, which is used to validate parameter for constructors and some other methods. - Add an 'autoflush' option to Log::Dispatch::File objects. Suggested by Jerrad Pierce. - Added some error checking to ::Email::MailSend. - Changed a carp to a warn in ::Email::MailSendmail. - Only warn if $^W is true. 2.00 2002-04-11 ** BACKWARDS INCOMPATIBILITY ALERT ** - Use a standard hash reference for objects instead of pseudo-hashes. ** THIS MAY BREAK EXISTING SUBCLASSES **. - Log::Dispatch::Screen claimed it defaulted to using STDERR but it was lying, it defaulted to using STDOUT. This has been changed so that it really does default to STDERR. Reported by James FitzGibbon. 1.80 2001-10-27 - Log::Dispatch::Syslog no longer requires syslog.ph for Perl >= 5.006. Patch by Benoit Beausejour. - If you passed a mode parameter to Log::Dispatch::File it always thought the mode was append, no matter what was passed. Patch from Luke Bakken. - Log::Dispatch::File no longer uses IO::File internally. 1.79 2001-05-15 - Don't use $, internally. Apparently this is usually undefined. Instead, the convenience methods now simply take an array of messages and turn it into a scalar by doing "@_". Thanks to Dean Kopesky for the bug report. 1.78 2001-04-19 - Allow ApacheLog to take either an Apache or Apache::Server object. - Fix callback documentation in Log::Dispatch::Output. Thanks to Rob Napier. - Add flush method to Log::Dispatch::Email. Patch submitted by Rob Napier. 1.77 2001-01-02 - The convenience methods named after the log levels ($log->debug, $log->alert, etc.) can now take a list of scalars. These are joined together just like Perl's print function does. Suggested by Tim Ayers. 1.76 2000-10-10 - New method: Log::Dispatch->level_is_valid($string). Suggested by Jeff Hamman. - Fix for version issues between CPAN versions of Log::Dispatch::ApacheLog. Reported by Jost Krieger. 1.75 2000-09-28 - Additional argument 'level' passed to message processing callbacks. Suggested by Jeff MacDonald. - Log/Dispatch.pm: added docs section on Log::Dispatch::Tk. 1.7 2000-08-30 - Added Log/Dispatch/ApacheLog.pm. This logs to the Apache error log. This is for use under mod_perl. 1.6 2000-07-04 NOTE: 1.5 was never released to CPAN. - Log/Dispatch.pm: Added convenience methods for log levels like $dispatcher->alert($message). Suggested by Dominique Dumont. - This version introduces some changes into the interface that will cause incompatibility with any Log::Dispatch::Output interface you may have created. However, it is fairly simple to fix. Simply change the method in your subclass named 'log' to be called 'log_message'. You can also remove the line: return unless $self->_should_log($params{level}); This is now done before the message ever gets to the Output subclass (which is what it should have done in the first place, really.) This was done so that I could allow per-Output object callbacks, a feature which several people have requested and which seems useful enough to warrant the breakage. NOTE: This change is transparent if you are only using the Output objects included with this distribution. - Many: Changed the interface to allow per-Output object level callbacks and documented this. - Log/Dispatch/Base.pm: new base class for both Log::Dispatch and Log::Dispatch::Output objects (contains callback related code). You should never need to deal with this class unless you are me. - Log/Dispatch/Output.pm: document _accepted_levels. - Log/Dispatch/Output.pm: Fix _accepted_levels so that emergency level is returned as 'emergency', not 'emerg'. - Log/Dispatch.pm: Fix doc bug (change 'file' to 'filename'). Thanks to Clayton Scott. - Log/Dispatch/File.pm: Do compile time check for O_APPEND constant rather than run time check. 1.2 2000-05-05 - Log/Dispatch.pm: Added callbacks parameter to Log::Dispatch->new. I will also be adding this to the Log::Dispatch::* classes via Log::Dispatch::Output but I wanted to get this new version out there because I think there are people out there who would benefit from this. - Log/Dispatch.pm: Added docs section on why Log::Dispatch doesn't add newlines to outgoing messages. 1.11 2000-02-24 - Realized I need to tweak the $VERSION in Log::Dispatch 1.1 2000-02-24 - Upped version to 1.1 to indicate my confidence in this release (I'm just asking for bug reports, I know). - Added accepted_levels method to Log::Dispatch::Output based on discussions with Dominique Dumont (author of the Log::Dispatch::Tk suite). - Canonical names for log levels are now the unabbreviated form (though the abbreviated ones used by syslog are still fine and there is no plan to deprecate them). This really only affects what is returned by the new accepted_levels method. 1.010 2000-01-17 - Fixed a bug in the DESTROY method of Log::Dispatch::Email that caused an annoying error and may have caused spurious emails to be sent (thanks to Radu Greab). - Fixed a bug in Log::Dispatch::Email::MailSendmail. For some reason this module demands a 'from' address. 1.009 2000-01-02 - Created this version simply to address an issue with CPAN and my internal version numbers having a conflict. This has no changes from 1.008. 1.008 1999-12-30 - Fixed a bug causing unitialized value warnings with -w (oops). - Fixed a minor mistake in Log::Dispatch::Syslog docs (thanks to Ilya Martynov) - Put newlines into messages in SYNOPSIS sections for some modules. This is to clarify that you need to do this. Just to be clear, Log::Dispatch does not alter message content in any manner whatsoever (and never will). However, it would be trivial to subclass Log::Dispatch to do this. 1.007 1999-12-01 - First public release. It passes its own test suite so it should work (he says hopefully).