* Sun Oct 01 2017 firstname.lastname@example.org
- updated to 2.67
- Added a lazy_open option to the File output. This delays opening the file
until the first time a log message is written to it. Implemented by Slaven
Rezi?. GH #50.
* Wed Aug 16 2017 email@example.com
- updated to 2.66
- Fixed the ApacheLog output, which was broken in 2.60. Fixed by Michael
Schout. GitHub #48 and #49.
* Wed Jun 14 2017 firstname.lastname@example.org
- updated to 2.65
- When Log::Dispatch::File is asked to chmod a file and that fails, show the
requested permissions in octal. Patch by Carsten Grohmann. GitHub #46.
2.64 2017-02-25 (TRIAL RELEASE)
- Improve level validation and canonicalization logic. Patch by Kerin Millar,
minor changes and tests by Kivanc Yazan. Github #42.
- The log_and_die and log_and_croak methods are now identical, as we set
@CARP_NOT for Log::Dispatch to exclude the Log::Dispatch package. You can
still explicitly pass carp_level to log_and_croak.
* Thu May 25 2017 email@example.com
- updated to 2.63
- Updated the conflicting version for Log::Dispatch::File::Stamped in
metadata (due to changes in handling of close_after_write). Patch by Karen
Etheridge. GitHub #41.
- Devel::Confess was accidentally being loaded in Log::Dispatch. Fixed by
Karen Etheridge. GitHub #39.
- The 2.60 release would throw an exception if the logged message was
empty. While this makes sense, it also breaks backwards compatibility, so it
has been reverted. Reported by Greg Oschwald. GitHub #38.
- The 2.60 release would throw an exception if you tried to create a Syslog
output where the ident was an empty string. Reported by Greg
Oschwald. GitHub #38.
- Same as 2.59 ... Switched from Params::Validate to
Params::ValidationCompiler. This should speed up constructors and logging a
little bit. This also allows Log::Dispatch::File to accept things like
Path::Tiny objects for filenames. Reported by Joel Berger. GitHub #36.
2.59 2017-02-05 (TRIAL RELEASE)
- Switched from Params::Validate to Params::ValidationCompiler. This should
speed up constructors and logging a little bit. This also allows
Log::Dispatch::File to accept things like Path::Tiny objects for
filenames. Reported by Joel Berger. GitHub #36.
* Tue Nov 15 2016 firstname.lastname@example.org
- updated to 2.58
- Switched from RT to the GitHub issue tracker.
* Mon Aug 15 2016 email@example.com
- updated to 2.57
- Added a remove_callback method to the main Log::Dispatch object as well as
* Mon May 23 2016 firstname.lastname@example.org
- updated to 2.56
- Cleaned up some cruft in Pod. Some sections ended up in there twice.
- The values of $@, $!, and $? are protected in various cases where they could
end up being changed by logging code. Patch by Salvador Fandiño. GitHub #18.
- Treat MSYS2 like Cygwin in tests. Fix by Graham Ollis. GitHub #19.
* Tue Jan 19 2016 email@example.com
- updated to 2.54
- Fixed File::Locked even more. While some deadlocks were eliminated, there
was still an issue when a Log::Dispatch object was created in a parent
process and then recreated in the children. If the close_after_write
parameter was false, then there would be a deadlock.
- Made Syslog work on a threaded Perl when the threads module was not
explicitly loaded. Fixed by Konrad Bucheli. GitHub #13.
- The log() method now accepts a level parameter as an integer. Fixed by Steve
Bertrand. GitHub #15.
- Actually fix File::Locked, this time with some actual tests.
- Make File::Locked output do an explicit unlock if the close_after_write
option is not set. Without this it would open the file once in each process,
attempting to get a lock at open time, pretty much guaranteeing a deadlock
in a multiprocess environment. Now it should work sanely whether
close_after_write is true or not.
* Sun Sep 20 2015 firstname.lastname@example.org
- updated to 2.51
- Fixed t/08-screen.t on Windows platforms.
* Thu Sep 03 2015 email@example.com
- updated to 2.50
- Changed how the Screen output handles UTF-8 data once more. The Screen
module has gone back to printing output directly to the global STDOUT and
STDERR handles. The previous changes broke the tests for several modules,
including Log::Dispatch::Config. This change should fix them.
* Sun Aug 23 2015 firstname.lastname@example.org
- updated to 2.49
- The Screen output now enables autoflush on the handle it uses to send output
to STDOUT or STDERR every time it sends a message. This does not affect the
global STDOUT or STDERR, as the Screen module makes its own handle for
output. This fixes a bug reported by Karen Etheridge that caused this module
to not play nicely with Capture::Tiny in some cases. RT #106605.
* Sat Aug 08 2015 email@example.com
- updated to 2.48
- Fixed (I hope) tests that were added in the last release that fail on
- Really, really make per-thread locking work. Depending on when threads and
threads::shared were loaded, you might get an error like 'Type of arg 1 to
threads::shared::share must be one of $@% at .../Log/Dispatch/Syslog.pm line
67, near "$thread_lock)"'. Reported by David Schweikert.
- Added support for auth-related parameters and replyto to
Log::Dispatch::Email::MailSender. Implemented by Rohan Carly. Based on
- Added a utf8 flag for Log::Dispatch::Screen. If this is true, then it sets
the ":encoding(UTF-8)" flag on the handle it uses for output (without
affecting STDOUT or STDERR elsewhere). Suggested by Ivan Baidakou.
- Really make the per-thread locking in the Syslog output work. Based on a
patch by David Schweikert. GitHub #9.
* Mon Jun 15 2015 firstname.lastname@example.org
- updated to 2.45
- 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.
* Sat Mar 21 2015 email@example.com
- Update to 2.44
* 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 Chrison Hutchinson. RT #99474.
- Changes for 2.43
* 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.
* Mon Sep 22 2014 firstname.lastname@example.org
- really remove Log-Dispatch-old_Test-More.patch
* Fri Sep 19 2014 email@example.com
- updated to 2.42
- 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
- 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.
* Fri Jul 26 2013 firstname.lastname@example.org
- updated to 2.41
- 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.
- Added a conflict entry for older Log::Dispatch::File::Stamped to the
metadata. Patch by Karen Etheridge. RT #86215.
- remove outdated Log-Dispatch-old_Test-More.patch
* Wed Jun 05 2013 email@example.com
- updated to 2.39
- You can now pass a port option to the MailSender output. Patch by Whitney
- Fix test that used undeclared prereqs so it does not do that.
- Moved Log::Dispatch::File constructor parameter validation moved to
_basic_init() to facilitate proper subclassing. Patch by ether. RT #84545.
- Added a very simple Log::Dispatch::Code output. This lets you log to a
- 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.
- Added a big warning about the potential for deadlocks in the documentation
for Log::Dispatch::File::Locked. Patch by ether.
- Fix a test bug that caused the tests to fail on all Perls before 5.16.0.
- 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.
* Mon Aug 22 2011 firstname.lastname@example.org
- fix build on distributions with old Test::More module
( Log-Dispatch-old_Test-More.patch )
* Sat Apr 02 2011 email@example.com
- update to 2.29
- Add is_$level methods for compatibility with Log::Contextual