The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
0.50    Released at 2008-11-27.
        - Added the functionality to create a application logger.
          New functions are create_logger and get_logger.
        - Added option expect_caller, what is the opposite of
          option filter_caller.

0.49    Released at 2008-11-16.
        - Added patterns %U and %G (user, group).
        - Fixed a bug in Socket.pm. If the server gone then
           Log::Handler croaks even if die_on_errors is disabled.
        - Fixed a bug in Output.pm. $log->error(0) logs nothing.
          $log->error('foo', undef, 'bar') caused a warning.

0.48    Released at 2008-10-28.
        - Fixed a bug in Email.pm - no error message if a email
          couldn't be send.
        - Added Email::Date to send the date with a email.
        - EMAIL: if the key $message->{level} exists then the level is
          used in the subject: "$level: $subject". The level can
          passed with the option message_pattern.

0.47    Released at 2008-09-04.
        - Add new config features. Now it's possilbe to add the
          configuration for the outputs as a array reference.
        - Add method log() to log with the level as first argument:
          log($level=>$msg).
        - Kicked Changes.pm. Not needed any more.

0.46    Released at 2008-07-28.
        - Fixed Plugin::YAML. It was created as Plugin::Config::YAML.
        - Did some code/example improvements.

0.45    Released at 2008-07-25.
        - Kicked $self->{caller_level} and replaced it with
          Log::Handler::CALLER_LEVEL. The reason is that if dump(),
          die() or warn() was called then the patterns %p, %f, %c or
          %s was wrong.
        - Changed option filter to filter_message and added a new
          option called filter_caller.

0.44    Released at 2008-06-04.
        - Fixed set_pattern(). It dies if the key name is something like
          'x-name' because $m->{x-name} is not valid.
        - Changed pattern %R to %r.

0.43    Released at 2008-05-21.
        - Fixed log() in DBI.pm and Socket.pm - only try to reconnect
          if persistent + reconnect is set to true. Sorry :(

0.42    Released at 2008-05-21.
        - Added $|=1 to Screen.pm.
        - warn() is now a shortcut for warning().
        - Add flush() to Handler.pm, Output.pm and File.pm.
        - Added Perl version 5.6.1 to Build.PL (use warnings & utf8).
        - Added a licence file.
        - Fixed reconnect in DBI.pm.
        - Fixed a lot of POD typos.

0.41    Released at 2008-05-09.
        - Messages will be send to all outputs, even if a output is
          not able to log a message. In version 0.40 the handler
          stopped if a message couldn't be logged. That was bad.
        - Did a lot code, POD and internal doc improvements.

0.40    Released at 2008-05-04.
        - A full release - finally :-)
        - Kicked all <level>_and_trace and <level>_and_die methods.
          Replaced them with $log->die and $log->trace.
        - Did some code and POD improvements.

0.39_17 Released at 2008-04-29.
        - Kicked all <level>_and_croak methods and carp() - to bloated.
        - message_pattern and message_layout is now builded with eval.
        - The patterns are not static any more. Changes at runtime are
          possible with set_pattern().
        - Fixed Log::Handler::Output::Email - forget to call sendmail()
          if buffer is set to 0.
        - Kicked option interval from Log::Handler::Output::Email.
        - All log() methods of each output expects now a hash or a
          hash reference with the message (message => $message).
          Before this change it was possible to pass a hash reference
          or a simple string: { message => $message } or just $message.
        - Some other little improvements: POD, Code, Examples

0.39_16 Released at 2008-04-17.
        - Kicked all <level>_and_exit() methods - to bloated.
        - Added Log::Handler::Pattern.
        - Added Log::Handler::Output::Socket.
        - Added option filter and alias to the handler.
        - Added close() to Log::Handler::Output::File.
        - Added connect() and disconnect() to Log::Handler::Output::DBI.
        - Added connect() and disconnect() to Log::Handler::Output::Socket.

0.38_15 Released at 2008-03-06.
        - The old style of Log::Handler version 0.38 is now implemented as
          Log::Handler::Simple.
        - POD improved; added Changes.pod, Examples.pod.

0.38_14 Released at 2008-02-17.
        - Forget to delete some POD parts - sorry :/

0.38_13 Released at 2008-02-17.
        - Kicked trace() and option "trace".
        - Added trace methods for each level.
        - Added croak, carp, die and warn methods for different levels.
        - Log::Handler::Levels is now the base class for all level methods.

0.38_12 Released at 2008-02-16.
        - Released with a lot of POD, code and example improvements.

0.38_11 Released at 2008-02-15.
        - Changed option message_keys to message_pattern.
          I hope that was the last change of this name :/
        - Fixed POD typos and improved the documentation.

0.38_10 Released at 2008-02-13.
        - Added Log::Handler::Output::Screen.
        - Added option "priority" to the handler.

0.38_09 Released at 2008-02-09.
        - Fixed t/100-config.t. Config::General was loaded, but it's not
          in the prereq list. Kicked GLOBREF from the validate list for
          config filename in Log::Handler::Config.

0.38_08 Released at 2008-02-08.
        - Kicked eval { } from Log::Handler::Output::DBI.
        - Missed documentation for dbi_params in Log::Handler::Output::DBI.

0.38_07 Released at 2008-02-08.
        - Replaced options prefix and postfix with message_layout.
        - Added %m as message to placeholders.
        - Renamed option setinfo to message_keys.
        - Added Log::Handler::Output::DBI.
        - A lot of other code improvements.
        - Moved the main logic from Log::Handler::Logger back to
          Log::Handler.
        - Renamed Log::Handler::Logger to Log::Handler::Output. This module
          builds the output message and is just for internal usage.
        - Renamed all output modules from Logger to Output.
        - Patterns are not global any more. Now the patterns are stored
          into the Log::Handler object.
        - Changed option debug to debug_trace. The reason is that the
          option debug can be used for output objects.

0.38_06 Released at 2008-01-20.
        - POD improved and a lot of POD typos fixed.
        - Fixed splitToTree argument for plugin Config::Properties.
        - Different code improvements.
        - Add option setinfo to Log::Handler::Logger.
        - The message is now handled with a hash ref intern.

0.38_05 Released at 2008-01-19.
        - Very annoyingly... wrong description for Log::Handler::Logger::Forward.

0.38_04 Released at 2008-01-19.
        - Fixed test for parameter 'filename' in t/03handler.t.
        - Fixed a lot of typos and improved the code.
        - Added Log::Handler::Logger::Forward.
        - Added Log::Handler::Logger::Email with Net::SMTP.
        - Added fatal() to Log::Handler.

0.38_03 Released at 2008-01-14.
        - Added Log::Handler::Config.pm.
        - Added plugins for Config::General, Config::Properties and YAML.
        - Fixed some POD typos.

0.38_02 Released at 2008-01-13.
        - Fixed test for 'mode' in t/03handler.t.
        - POD and intern documentation improved.
        - Fixed example examples/trace.pl.
        - Kicked method levels() from Log::Handler::Logger.
        - Added the option trace. With this option it's possible
          to deactivate the logging of trace messages to a logfile.

0.38_01 Released at 2008-01-13.
        - Added Log::Handler::Logger and moved the main logger logic to it.
        - Now it's possible to define more than one log file. Each log file
          got it's own Log::Handler::Logger object.
        - The simple call of "Log::Handler->new()" will not create a default
          output object for *STDOUT any more, it just creates an empty Log::Handler object.
        - To add log file the method add() should be used. The first log file can be
          defined by new().
        - The methods close(), set_prefix(), get_prefix are not available any more.
        - The placeholder <--LEVEL--> for the prefix is changed to %L. In addition there
          are different other placeholders available and it's possible to define a postfix.
        - trace() will trace caller informations to all log files that are defined.
        - Did a lot of other code changes.

0.38    Released at 2007-09-29.
        - Kicked set_log_buffer() and get_buffer_log().
        - Did some code improvements and split _print() into different routines.
        - The option filename isn't mandatory any more. The default is *STDOUT.

0.37_01 Released at 2007-07-20.
        - Added set_buffer_log() and get_buffer_log() to Log::Handler.
        - Kicked now the would_log_* methods. Since 0.33 the is_* methods exists
          as replacement.

0.37    Released at 2007-07-04.
        - Added option rewrite_to_stderr.
        - Replaced syswrite to print in _print().

0.36    Released at 2007-06-15.
        - Now it's possible to set utf8 on the filehandle.
        - Kicked CLOSE().
        - Kicked File::Stat because CORE::stat() is much faster and I did some
          other improvements. Now _print() is ~50% faster if reopen is used.

0.35    Released at 2007-06-05.
        - Added method trace() to prints caller() to the log file.
        - Did some code improvements and fixed POD typos.

0.34    Released at 2007-05-22.
        - Changed the regex /.*\z/ to /.\z|^\z/ to append a newline if not
          exists because /.*\z/ seems to be a regex bug.

0.33	Released at 2007-05-09.
        - Added 13 is_* methods. They do the same as the would_log_* methods.
        - Added close() as replacement for CLOSE(). CLOSE() exists in further
          releases but is deprecated.
        - Did some code improvements and fix some POD typos.
        - Kicked IO::Handle from PREREQS and autoflush myself on the file handle.

0.32	Released at 2007-04-26.
	    I jumped from 0.15 to 0.32 because there exists brownfields on backpan.
	    Replaced my own routine to get caller() informations with Devel::Backtrace.
	    Added the option debugger_skip.

0.15	Released at 2007-04-25.
        - Fixed typos in POD.
        - Changed the way to activate the debugger. Now the debugger is activated
          over the call of new().

0.14	Released at 2007-04-24.
        - Fixed "use Log::Handler debug => ...".

0.13    Released at 2007-04-20.
        - Added the availability to activate debugging with "Log::Handler debug => 1".

0.12    Released at 2007-04-15.
        - Fixed DESTROY(). DESTROY() tries to unlock $self->{fh} in any case.
        - Autoflush wasn't set if the option "filename" was set to STDOUT or
           STDERR or a GLOBREF.

0.11    Released at 2007-04-10
        - Add the methods set_prefix() and get_prefix(). Did some POD changes.

0.11_02 Released at 2007-04-04
        - Add the alternative to set "nothing" as option for minlevel and
          maxlevel.

0.11_01 Released at 2007-04-04
        - I changed the log levels because they wasn't in the right order.
          0 debug     is now 7
          1 info      is now 6
          2 notice    is now 5
          3 warning   is now 4
          4 error     is now 3
          5 crit      is now 2
          6 alert     is now 1
          7 emergency is now 0
          8 nothing is still the same
          If you set maxlevel and minlevel as strings in your code than
          you don't need to change your code, but if you used numbers
          than you must change it! BIG sorry to all users that have to
          re-write code in this case.
        - Thanks to betterworld for his tipps about the log levels! (thx pepe ;-))

0.10    Released at 2007-04-04
        - Add the alternative to set STDOUT and STDERR as a string
          with the option "filename".

0.09    Released at 2007-03-01.
        - Fixed t/03handler.t. The test log file was in unix format
          t/Log-Handler-Test-File.log, now it use File::Spec catfile().
        - Forget to CLOSE() the log file in t/03handler.t and test fails
          on Windows.

0.08    Released at 2007-02-25.
        - Now it's possible to hand off GLOBREF to option filename.
          There are some options that will be forced automatical:
          - fileopen => 1
          - filelock => 0
          - reopen   => 0

0.07    Released at 2007-03-13.
        - Fixed t/03handler.t.

0.06    Released at 2007-03-11.
        - Fixed a bad typo in SYNOPSIS of POD.
        - Changed the description in NAME of POD.

0.05    Released at 2007-03-11.
        - Fixed some typos in the documentation.

0.04    Released at 2007-03-09.
        - Fixed code in new(). There was three typos.

0.03    Released at 2007-03-09.
        - Fixed t/03handler.t.
        - Added some points to the documentation.
        - Add an example for die_on_errors.
        - Add an example to call syslog methods.
        - Different code changes.
        - Fixed new(). Now it returns undef if open()
          fails.

0.02    Released at 2007-02-05.
        - Added eight new methods:
          would_log_debug()
          would_log_info()
          would_log_notice(), would_log_note()
          would_log_warning()
          would_log_error(), would_log_err()
          would_log_critical(), would_log_crit()
          would_log_alert()
          would_log_emergency(), would_log_emerg()
        - Changed the POD.

0.01	Released at 2007-02-04.
x.xx	Thanks to Larry Wall and all other Perl developers for Perl :-)