Revision history for File-Write-Rotate

0.28    2015-01-26 (PERLANCAR)

        - Now check argument to new(), unknown arguments will croak.

        - Add option: rotate_probability, to increase writing speed by only
          doing rotate checks probabilistically, at the consequence of writes
          "spilling" for a bit.

0.27    2015-01-23 (PERLANCAR)

        - No functional changes.

        - [Bugfix] Fix compression when logging dir is not the current directory
          (Jonathan G. Rennison).

0.26    2015-01-22 (PERLANCAR)

        - Add option: lock_mode (can be set to 'write' [the default] or
          'none'/'exclusive'). Setting this option to 'none'/'exclusive' can
          increase write performance, but setting to 'none' means disabling
          locking and should be done if you expect only one writer, and setting
          to 'exclusive' means holding the lock for a long time. (Thanks
          Jonathan G. Rennison).

0.25    2014-12-05 (PERLANCAR)

	- No functional changes.

	- Use new name of renamed module SHARYANTO::File::Flock ->

0.24    2014-12-05 (PERLANCAR)

        - These changes are done by TOSHIOITO++.


        - Make sure lock is released even when write() or some hook dies.

        - Fix rotation, rotation by period previously never delete old files.


        - compress() method now avoids compressing files with the latest period.
          Before, this method avoided compressing files with the period of
          "_cur_period" private attribute, which was set by _open(). However,
          "_cur_period" was not set if compress() was called without calling
          write() beforehand. The new behavior is a little different from the
          old, but it's the same in most cases.

0.23    2014-11-09 (PERLANCAR)

	- compress() now unlinks uncompressed originals (this is the
	  original behavior before switching from using gzip utility to

0.22    2014-09-01 (PERLANCAR)

        - No functional changes.

        - POD fixes.

0.21    2014-09-01 (PERLANCAR)

        - Introduce hooks (currently:

        - Add (ro) attribute methods: handle(), path().

0.20    2014-08-22 (SHARYANTO)

        - Bug fix: Set timezone when testing, otherwise in UTC+12 (e.g.
          Auckland) there is change of day [CT].

0.19    2014-08-20 (SHARYANTO)

        - Fix bug in file_path() which caused current period log file to be
          compressed [problem reported by Alceu Rodrigues de Freitas Junior].

0.18    2014-08-16 (SHARYANTO) - Happy 19th CPAN Day!


        - Replace the use of 'gzip' binary with IO::Compress::Gzip, to allow
          this module to run in OS's other than Unix-like ones [Alceu Rodrigues
          de Freitas Junior].

        - Add tests for compression.

        [BUG FIXES]

        - Old period logs were never compressed.

0.17    2014-07-10 (SHARYANTO)

        - Fix dep version (Test::Warnings 0.014, not 0.14).

0.16    2014-07-10 (SHARYANTO)

        - Added support for 'binmode' (to set PerlIO layers, esp. encoding)
          [thanks Norbert Buchmuller].

0.15    2014-05-17 (SHARYANTO)

        - No functional changes.

        - Replace File::Slurp with File::Slurp::Tiny.

0.14    2013-07-03 (SHARYANTO)

        - No functional changes. Force fixed SHARYANTO::File::Flock version

0.13    2013-04-12 (SHARYANTO)

        - No functional changes. Add FAQ item on why use FWR and the downside.

0.12    2013-04-12 (SHARYANTO)

        - No functional changes. Update module name in POD and expand the
          explanation on the difference between FWR & LDFR.

0.11    2012-12-28 (SHARYANTO)

        - No functional changes. Tweak error message.

0.10    2012-12-28 (SHARYANTO)

        [NEW FEATURES]

        - Add buffering (attribute: buffer_size) to buffer messages during
          temporary write() failure.

0.09    2012-12-28 (SHARYANTO)

        - Make rotate pass under taint-mode.

0.08    2012-12-28 (SHARYANTO)

        [BUG FIXES]

        - Can now rotate on the first write() instead of on the second and

0.07    2012-12-27 (SHARYANTO)

        - Avoid using Log::Any, because we are used as backend for
          Log::Dispatch::FileWriteRotate (thus, a loop).

0.06    2012-12-27 (SHARYANTO)

        - Set autoflush (to pass Log-Any-App09 tests).

0.05    2012-12-26 (SHARYANTO)

        - No functional changes. Mention 'period' argument in POD.

0.04    2012-12-26 (SHARYANTO)

        - A small fix in DESTROY().

0.03    2012-12-25 (SHARYANTO)

        - No functional changes. Extract flocking routines to

0.02    2012-12-22 (SHARYANTO)

        - No functional changes. Additions/corrections for POD.

0.01    2012-12-21 (SHARYANTO)

        - First release.