Revision history for Log-Any

** denotes an incompatible change

1.705     2018-01-17 13:49:22-06:00 America/Chicago


    - Fixed the `binmode` attribute of the File adapter not working
      properly. Thanks @MadLord80! [Github #71]

1.704     2017-12-17 18:13:33-06:00 America/Chicago


    - Fixed some invalid POD and added a test to ensure POD validity
      before release. Thanks @shlomif! [Github #67][Github #68]

    - Improved performance when no work needed to be done. Thanks
      @mephinet! [Github #70]

1.703     2017-11-29 10:56:17-06:00 America/Chicago


    - Fixed log format methods (errorf, warnf, infof, etc...) not
      returning the formatted message sometimes. Thanks @vshekun!
      [Github #64]

1.702     2017-11-28 15:18:40-06:00 America/Chicago


    - Fixed log output disappearing when the `default_adapter` is set.
      Thanks @dallaylaen! [Github #65]

1.701     2017-10-02 14:36:51-05:00 America/Chicago


    - Fixed more method aliases in Log::Any::Adapter::Syslog that were
      mapped to invalid syslog priorities. Thanks @legaultp for the

1.700     2017-09-28 16:59:22-05:00 America/Chicago


    - Fixed version of Log::Any::Adapter::Syslog so that installing it
      will also install the rest of Log-Any.

    - Fixed method aliasing in Log::Any::Adapter::Syslog for "error"
      log method. Thanks @legaultp for the patch!

1.051     2017-08-06 20:41:53-05:00 America/Chicago (TRIAL RELEASE)


    - LOG_ANY_DEFAULT_ADAPTER now correctly logs to the given adapter.

      Previously, if no other adapter was set, Log::Any used its
      default, super-fast "Null" proxy that simply drops all messages
      without checking adapters. Now Log::Any will correctly detect the
      environment variable and create the correct, normal proxy object.

      Thanks @tm604 for the report and @mephinet for the patch!

1.050     2017-08-03 22:28:37-05:00 America/Chicago (TRIAL RELEASE)


    - Added structured logging to easily log single hash references in
      a parsable format. Thanks @mephinet!

    - Added contextual logging to attach information to log messages
      based on the current context.

      For example, all log messages being generated by a particular HTTP
      request could be logged with the URL, even if they're from a part
      of the application that doesn't know what HTTP is.

      This is very similar to Log::Log4perl's Mapped Diagnostic Context.

      Thanks @mephinet!

1.049     2017-03-28 16:02:10-05:00 America/Chicago


    - Fixed failing tests on Windows because of path separator
      interpolation. Thanks @nanis [Github #56]

    - Added explicit core dependency on Sys::Syslog in case of Perls
      with non-standard core libraries. Thanks @nanis [Github #57]

1.048     2017-03-27 15:16:12-05:00 America/Chicago

    - No changes since 1.047 trial release

1.047     2017-03-22 20:22:47-05:00 America/Chicago (TRIAL RELEASE)


    - Fixed backwards-compatibility with users using the Unix::Syslog
      macros in Log::Any::Adapter::Syslog. This requires that the user
      have Unix::Syslog installed (which Log::Any does not explicitly
      depend on).

    - Log level aliases are now case-insensitive to match the regular
      log levels. Prior to this, "WARNING", "Warning", and "warning"
      would all work, but "WARN", and "Warn" would not, only "warn".
      Thanks to @0x62ash for reporting this issue. [Github #55]

    - Invalid log levels for the File, Stderr, and Stdout adapters now
      result in a warning, and the default level of "trace" is used.
      Previously, no warning would be issued and no logs would be
      generated. Thanks to @0x62ash for reporting this issue. [Github

1.046     2017-01-11 21:22:57-06:00 America/Chicago (TRIAL RELEASE)


    - The Syslog adapter is now part of the core distribution, since it
      relies only on core Perl modules.

1.045     2016-11-11 21:52:46-06:00 America/Chicago

    - No changes from previous (trial) release 1.044

1.044     2016-11-06 15:30:35-06:00 America/Chicago (TRIAL RELEASE)


    - Imported log object can now be called anything instead of just
      `$log`. This means `use Log::Any '$LOG'` or `use Log::Any '$foo'`
      now work.

1.043     2016-11-03 21:31:18-05:00 America/Chicago (TRIAL RELEASE)


    - Objects that overload stringification are now stringified
      correctly (instead of run through Data::Dumper). Thanks @mephinet!

1.042     2016-08-26 23:37:33-05:00 America/Chicago


    - Default adapters can now be configured with arguments (thanks

1.041     2016-08-18 00:00:10-05:00 America/Chicago (TRIAL RELEASE)


    - Logging methods now return the formatted log string so that it can
      be used in a `die` or `warn` call.


    - A new default log proxy (Log::Any::Proxy::Null) is used when there
      are no adapters configured (and so no place for logs to go). This
      proxy does no processing and is about 1000% percent faster on my


    - Suppress 'redundant argument' warnings if too many arguments are
      given to a log formatting string.

1.040     2016-02-24 17:47:00-05:00 America/New_York


    - Fixed duplicated documentation sections.

1.038     2016-02-10 14:15:31-07:00 America/Mazatlan

    - No changes from 1.037

1.037     2016-02-05 20:22:34-05:00 America/New_York (TRIAL RELEASE)


    - Fixed t/filescreen.t Unicode string tests to use a backwards
      compatible form.  Should fix tests before 5.16.

1.035     2016-02-04 14:47:20-05:00 America/New_York (TRIAL RELEASE)


    - The default formatter now replaces a code reference argument with
      the results of calling the code reference ONLY when it is the first
      argument (in place of a format string).  Code references in
      subsequent arguments (to sprintf) are not executed, as this would
      break backwards compatibility.


    - Noted that repeatedly calling 'set' to set an adapter without calling
      'remove' or using the 'lexically' feature will leak memory.

1.033     2016-02-03 10:32:57-05:00 America/New_York (TRIAL RELEASE)


    - The default formatter now expands code references.  If the first
      argument is a code reference, it is expanded and returned.  If an
      argument to "sprintf" style formatting is a code reference, it is


    - The File adapter now opens files with the ":utf8" layer.  It also
      takes a 'binmode' attribute to change the default.


    - does_not_contain_ok test adapter function now gives proper
      diagnostic message

    - all diagnostic messages that output the captured log now
      correctly dump the log with pretty formatting


    - documented the 'proxy_class' argument to `get_logger`


    - Data::Dumper is loaded lazily, to reduce module load times
      for programs that don't need it.

1.032     2015-03-26 17:23:37-04:00 America/New_York

    - no changes from 1.031

1.031     2015-03-26 06:08:17-04:00 America/New_York (TRIAL RELEASE)


    - Log::Any::Adapter::Test passed through all constructor arguments,
      which could be fatal when mocking adapters without all key-value
      pairs (like Log::Any::Adapter::File); now this only passes through
      the category and ignores other parameters when used as an
      adapter class override.

1.03      2015-01-01 22:39:41-05:00 America/New_York


    - Log::Any::Proxy concatenates arguments to basic logging functions
      with a space character before passing them to adapters as a single
      string.  This ensures consistency across adapters that handle
      multiple arguments differently.

1.02      2014-12-28 07:06:49-05:00 America/New_York


    - Some adapters relied on Log::Any::Adapter::Util also loading
      Log::Any so this behavior has been restored.

1.01      2014-12-26 22:25:13-05:00 America/New_York


    - 'numeric_level' was not exported properly from

1.00      2014-12-25 22:04:13-05:00 America/New_York


    - Logging now goes via a Log::Any::Proxy object instead of directly to
      an adapter. This allows easy customization of the message production.

    - File, Stdout, and Stderr adapters now support a minimum
      log level parameter.


    - Removed dead code from Log::Any::Adapter::Base; particularly this
      was the formatting code, since this is now handled by


    - File will flock the handle when writing (if flock is avaiable).

    - Won't die if adapters aren't loadable modules as long as they
      provide a constructor.  This allows using private adapters
      defined in another file.


    - Revised docs for creating adapters

    - Fixed typos and improved docs for Log::Any::Adapter::Util; removed
      stub docs for modules that didn't need it.


    - Deprecated some methods in Log::Any::Adapter::Util


    - Merged Log-Any and Log-Any-Adapter distributions; reduces code
      duplication and ensures Log::Any and adapter framework stay in sync

    - Eliminates all non-core dependencies (as of Perl 5.8.1), including
      Capture::Tiny, Devel::GlobalDestruction and Guard

0.92      2014-12-15 07:12:38-05:00 America/New_York (TRIAL RELEASE)

0.91      2014-12-14 22:13:09-05:00 America/New_York (TRIAL RELEASE)

0.90      2014-12-12 17:08:22-05:00 America/New_York (TRIAL RELEASE)

0.15  Apr 10, 2013

* Fixes
  - Hide 'package Log::Any::Adapter' from PAUSE/Module::Metadata - miyagawa

0.14  Aug 31, 2011

* Fixes
  - Fix version number in Log/ - Stephen Thirlwall

0.13  Aug 2, 2011

* Fixes
  - Fix typo in lib/Log/Any/Adapter/ - RT #69850 - Stephen Thirlwall

0.12  Mar 23, 2011

* Fixes
  - Return false from null adapter is_xxx methods - RT #64164 - Chip Salzenberg
  - Eliminate 'subroutine redefined' warning in case Log::Any::Adapter loaded before

* Implementation
  - Migrate to Dist::Zilla

0.11  Feb 12, 2010

* Improvements
  - Add trace level - suggested by Szymon Swierkosz

0.10  Jan 5, 2010

* Fixes
  - Fix Log::Any::Core to support references in printf-style methods

0.09  Jan 5, 2010

* Improvements
  - Convert undef to string "<undef>" in printf-style methods - RT #53398, suggested by Steven Haryanto

0.08  Dec 15, 2009

* Fixes
  - Fix Log::Any::Test to support full logging API (aliases and printf methods)

0.07  Dec 7, 2009

* Implementation
  - Depend on Test::Simple rather than Test::More

* Improvements
  - Add Log::Any::Test, to aid in testing code that uses Log::Any

0.06  Oct 31, 2009

* Fixes
  - Implement Log::Any->set_adapter again for backward compatibility with 0.04 and earlier

0.05  Oct 27, 2009

* Implementation
  - ** Strip Log::Any down to a relative minimum, so as to keep it stable and
    unchanging. Move everything else to Log::Any::Adapter.

0.04  Sep 3, 2009

* Fixes
  - Replace Test::Deep::cmp_deeply with an internal version to avoid Test::Deep dependency

0.03  Jul 17, 2009

* Improvements
  - Eliminated extra '::Log' from adapter names, e.g. Log::Any::Adapter::Log::Dispatch is
    now Log::Any::Adapter::Dispatch. The long name was properly descriptive but was making
    me wince every time.

0.02  Jul 14, 2009

* Fixes
  - Fix logging aliases like warn => warning

* Implementation
  - Eliminate unnecessary Test/ class
  - Precompute alias and method lists like Log::Any->logging_methods

0.01  Jul 11, 2009

- Initial version