The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
ChangeLog for savelogs
=============================================================================

*Release 1.50*
----------------------------
revision 1.30
date: 2002/12/06 23:38:10;  author: scottw;  state: Exp;  lines: +111 -40
- allow $LOG in postmovehook and postfilterhook phases
- regression tests for these phases
----------------------------

*Release 1.42*
----------------------------
revision 1.29
date: 2002/12/06 19:28:08;  author: scottw;  state: Exp;  lines: +14 -4
- some minor documentation changes
----------------------------
revision 1.28
date: 2002/06/27 18:21:53;  author: scottw;  state: Exp;  lines: +6 -2
- add examples of datefmt
----------------------------

*Release 1.41*
----------------------------
revision 1.27
date: 2002/05/02 18:47:12;  author: scottw;  state: Exp;  lines: +35 -18
- version 1.40 had a backward incompatibility in how it dealt with
  empty log queues; prior to 1.40 if a log queue became empty because
  logs were culled for size reasons, no "You must specify one or more
  log files" warning was issued. Version 1.40 _would_ issue an error
  regardless of how the queue was emptied because of a loop
  optimization; this revision (1.41) restores the old behavior.
- regression tests added to check for this warning
----------------------------
revision 1.26
date: 2002/04/30 22:29:32;  author: scottw;  state: Exp;  lines: +3 -3
- typo fixt
----------------------------

*Release 1.40*
----------------------------
revision 1.25
date: 2002/04/30 20:16:56;  author: scottw;  state: Exp;  lines: +121 -64
- added 'NoLog' directive to exclude/cull specified logs
  * uses shell globbing like 'Log' directive
  * smart enough to find logs based on inode (not just path) so
    symlinked paths are ok
  * lots of documentation (rotation.pod includes new example, too)
  * regression tests added
- better error handling in ApacheConf (fetch_apache_logs)
  * handles empty/nonexistent files
  * no more fatal exceptions in this function when absent logs
- condensed fetch_logs and cull phases into one phase, one loop
- added 'fulllog' data member to log object (shaves off a half-dozen
  calls to mkpath)
- pre-compressed file check now pre-compiled regex
- backward compatible with all 1.x versions
----------------------------

*Release 1.33*
----------------------------
revision 1.24
date: 2002/02/28 19:46:27;  author: scottw;  state: Exp;  lines: +55 -69
- use strftime to format the date extension
- removed 'smalldate' from the distribution
- cleaned up some undef bugs in find_binary()
----------------------------
revision 1.23
date: 2002/01/07 19:02:29;  author: scottw;  state: Exp;  lines: +3 -3
- fixup minor pod problem
----------------------------

*Release 1.32*
----------------------------
revision 1.22
date: 2002/01/07 18:22:07;  author: scottw;  state: Exp;  lines: +116 -113
- move stem phase after filter phase so that analysis programs can
  have post filtered logs.
----------------------------
revision 1.21
date: 2002/01/03 04:43:31;  author: scottw;  state: Exp;  lines: +57 -19
- update documentation
----------------------------

*Release 1.31*
----------------------------
revision 1.20
date: 2002/01/03 03:10:30;  author: scottw;  state: Exp;  lines: +43 -4
- added postfilterhook
----------------------------

*Release 1.30*
----------------------------
revision 1.19
date: 2001/11/02 21:12:48;  author: scottw;  state: Exp;  lines: +31 -10
- added 'nogripe' option to turn off griping when there are no logs
----------------------------


*Release 1.29*
----------------------------
revision 1.18
date: 2001/10/24 23:38:08;  author: scottw;  state: Exp;  lines: +3 -3
- raise globbing debug output one level
----------------------------
revision 1.17
date: 2001/10/23 15:27:21;  author: scottw;  state: Exp;  lines: +4 -4
clean license
----------------------------
revision 1.16
date: 2001/10/22 16:28:03;  author: scottw;  state: Exp;  lines: +91 -13
- globbing capability with Log directive added (uses Perl's internal
  glob operator). Now you can do stuff like this:

    Log            /www/logs/access_log.*

  and savelogs will find matching logs--implicitly omitting
  *(\.tar|\.t?gz)
----------------------------


*Release 1.28*
----------------------------
revision 1.15
date: 2001/10/02 22:42:47;  author: scottw;  state: Exp;  lines: +42 -31
- wrapped stemhook phase with dry-run (so it won't execute under dry-run)
- simplified mk_path to take arbitrary arguments
----------------------------
revision 1.14
date: 2001/09/25 20:20:31;  author: scottw;  state: Exp;  lines: +17 -7
- add $HOME StemHook variable
- document $HOME variable
----------------------------
revision 1.13
date: 2001/09/25 17:05:30;  author: scottw;  state: Exp;  lines: +237 -35
- changed default apachelogexclude directive to include '|' (pipe)
- added stem, stemhook, stemlink directives to allow an external
  program to find a consistently named log file
- added some debugging code to fetch_logs phase
- outdented postmovehook section from if clause (do quick exit with 'last')
- added stem code which creates a symbolic (or other specified type)
  link to the already moved file. The symlink is well-named for an
  external program (ala analog, urchin, etc.) to find a dynamically
  named log easily.
- added poststemhook which executes an external program, much like
  postmovehook. After poststemhook executes, the symlink stem is removed.
- documentation chanages
- version string updated
----------------------------

*Release 1.27*
----------------------------
revision 1.12
date: 2001/09/14 17:32:19;  author: scottw;  state: Exp;  lines: +19 -42
- fix long standing bug where duplicate log files were not detected;
  we do inode-based duplicate detection
----------------------------
revision 1.11
date: 2001/09/13 22:41:47;  author: scottw;  state: Exp;  lines: +4 -4
- escape a '$' in the help output so that perl doesn't see "$'" as a
  variable
----------------------------
revision 1.10
date: 2001/09/13 20:24:40;  author: scottw;  state: Exp;  lines: +7 -10
- fix long standing bug where archive pathname was being ignored if
  the archive is created in the same directory as some of the logs
  being stored.
----------------------------
revision 1.9
date: 2001/09/13 18:11:31;  author: scottw;  state: Exp;  lines: +9 -7
- fix typo in debug output
- fix attempted modification of constant in debug funtion
- use Cwd::abs_path instead of File::Basename::dirname to determine paths
----------------------------
revision 1.8
date: 2001/09/12 21:54:48;  author: scottw;  state: Exp;  lines: +48 -3
- if the archive option is given, add the archive process option by
  default (except under periodic rotation)
----------------------------
revision 1.7
date: 2001/09/12 18:12:13;  author: scottw;  state: Exp;  lines: +3 -2
- add comment to sample configuration file
----------------------------

*Release 1.26*
----------------------------
revision 1.5
date: 2001/09/11 19:43:38;  author: scottw;  state: Exp;  lines: +31 -6
- added logic to skip postmovehook phase if there are no logs
- added force-pmh option to execute postmovehook even in absence of logs
- capture postmovehook command output and direct it to log file under loglevel 5
----------------------------
revision 1.4
date: 2001/09/07 17:29:31;  author: scottw;  state: Exp;  lines: +44 -44
doc updates
----------------------------
revision 1.3
date: 2001/08/29 20:14:26;  author: scottw;  state: Exp;  lines: +30 -41
- changed default log level
- removed inaccessible code sections
- made fixup section chained 'elsif's instead of 'if's
- fixed a couple of defined but false tests
----------------------------

*Release 1.25*
----------------------------
revision 1.2
date: 2001/08/28 20:20:22;  author: scottw;  state: Exp;  lines: +46 -14
- made 'filter' option automatically enable filter process option
- cleaned up process option word checking regular expressions
----------------------------
revision 1.1
date: 2001/08/27 23:29:51;  author: scottw;  state: Exp;
- fixed 'settings' output to use only one output stream
----------------------------

Re-imported into CVS using different versioning method; CPAN-ized,
etc. Sorry about the duplicated revision strings below.  Everything
above here is beginning version 1.24.

----------------------------
revision 1.22
2001/08/16 19:39:04
- added 'Log' directive to process logs in a configuration file;
- updated documentation, cleaned references with incomplete paths,
  clarified use of backticks in a configuration file (i.e., no-no).
- added sample 'Log' directive use to sample configuration file
----------------------------
revision 1.21
2001/08/13 19:38:28
- enabled --period option to have the same argument as --count
- fixup documentation
- changed default process option to 'move,compress' instead of 'all'
----------------------------
revision 1.20
2001/08/01 15:49:42
- fixed docs to use single quoting for filters
----------------------------
revision 1.19
2001/07/17 21:58:02
- fixed count default;
- made process=move,compress by default under the --period option (or
  if filter is already specified, move,filter,compress)
----------------------------
revision 1.18
2001/07/07 22:02:29
- fix for undefined value under cron execution
----------------------------
revision 1.17
2001/07/06 21:49:11
- added '=back' pod directive to fix html output
----------------------------
revision 1.16
2001/07/06 20:03:13
- more documentation changes
----------------------------
revision 1.15
2001/07/06 19:39:05
- additional documentation; no code changes.
----------------------------
revision 1.14
2001/06/27 15:59:26
- add workaround for Solaris 'which' (ack! it's written in csh!)
----------------------------
revision 1.13
2001/06/26 21:56:36
- combine how logs are fetched from httpd.conf and @ARGV;
- use pipe-to open instead of backticks for finding system binaries
----------------------------
revision 1.12
2001/06/21 15:26:17
- changed die calls to write_log(LEVEL0, $msg) calls as documented
- many documentation improvements and additional examples
----------------------------
revision 1.11
2001/06/21 13:19:51
- fixed case where the same log file is specified several times. We now
  only process unique (based on pathname, not realname) logs.
----------------------------
revision 1.10
2001/06/20 15:42:10
- remove single quotes around sample configuration file apachelog
  directive in docs
----------------------------
revision 1.9
2001/06/11 21:25:27
- added 'period', 'count', and 'touch' directives and documentation
----------------------------
revision 1.8
2001/05/31 19:15:56
- simplified how savelogs finds binaries it's looking for
- fixed case where user may wish to change compression formats
----------------------------
revision 1.7
2001/05/30 23:45:17
- added start and end logging lines at level1 logging.
----------------------------
revision 1.6
2001/05/30 23:42:51
- cleaned up logging statements and debugging statements
- added complete usage output for --help or bad command-line arguments
----------------------------
revision 1.5
2001/05/25 23:38:06
- more documentation
- multiple apachelogexclude lines allowed in config file and command-line
- clobber implemented
- --archive option fixed
- --full-path option replaced --archive-paths option
- more robust in presence of errors
----------------------------
revision 1.4
2001/05/24 23:33:16
- Huge documentation updates. More to come tomorrow.
----------------------------
revision 1.3
2001/05/23 21:18:40
- add code for filter phase (philter fase?)
----------------------------
revision 1.2
2001/05/23 20:16:24
- alpha quality--test suite forthcoming
----------------------------
revision 1.1
2001/05/18 19:53:52
- initial import of savelogs
=============================================================================