ChangeLog for savelogs
=============================================================================

*Release 1.96*
----------------------------
revision 1.9
date: 2011/08/22 19:37:35;  author: scott;  state: Exp;  lines: +7 -4
- silence warnings during dry-run
- use env perl
- clean tests for Perl 5.12+
----------------------------


*Release 1.95*
----------------------------
revision 1.8
date: 2011/08/19 15:28:16;  author: scott;  state: Exp;  lines: +4 -4
- allow ServerRoot to have leading spaces (no other directives affected)
----------------------------


*Release 1.94*
----------------------------
revision 1.7
date: 2010/01/12 17:21:48;  author: scott;  state: Exp;  lines: +11 -11
- dry-run documentation clarifications
----------------------------


*Release 1.93*
----------------------------
revision 1.6
date: 2009/04/01 00:42:18;  author: scott;  state: Exp;  lines: +4 -2
- clean up a warning when the chown value doesn't have ':'

*Release 1.92*
----------------------------
revision 1.5
date: 2008/12/19 05:18:00;  author: scott;  state: Exp;  lines: +19 -2
- documentation update
----------------------------
revision 1.4
date: 2008/12/19 05:12:50;  author: scott;  state: Exp;  lines: +8 -2
- new 'disabled' directive for <Group> blocks


*Release 1.91*
----------------------------
revision 1.3
date: 2008/12/16 04:47:25;  author: scott;  state: Exp;  lines: +56 -22
- allow datefmt and other non-periodic rotation directives to work in
  a Group block


*Release 1.90*
----------------------------
revision 1.2
date: 2008/11/29 15:52:45;  author: scott;  state: Exp;  lines: +276 -60
- new <Group> configuration file directive and processing
----------------------------
revision 1.1
date: 2007/11/01 19:10:57;  author: scott;  state: Exp;
- initial import of savelogs 1.81


*Release 1.81*
----------------------------
revision 1.12
date: 2004/08/30 18:02:43;  author: scottw;  state: Exp;  lines: +17 -19
- fix bug in how hosts are gathered via ApacheHost directive
- additional documentation
----------------------------
revision 1.11
date: 2004/08/23 19:03:22;  author: scottw;  state: Exp;  lines: +2 -2
- fix version date
----------------------------
revision 1.10
date: 2004/08/23 18:59:13;  author: scottw;  state: Exp;  lines: +7 -4
- add item to "todo" list
----------------------------
revision 1.9
date: 2004/08/23 18:48:47;  author: scottw;  state: Exp;  lines: +1 -1
- add new directives to lint
- minor doc fixes
----------------------------
revision 1.8
date: 2004/08/23 18:35:07;  author: scottw;  state: Exp;  lines: +30 -0
- documentation updates
----------------------------
revision 1.7
date: 2004/08/23 18:14:37;  author: scottw;  state: Exp;  lines: +178 -186
- add chown directive
- add chmod directive
- add apachehost directive (find logs by hostname in VirtualHost block)

*Release 1.70*
----------------------------
revision 1.6
date: 2003/08/14 20:15:47;  author: scottw;  state: Exp;  lines: +64 -26
- new ApacheInclude directive; follows Apache's Include directive to
  find more log files.
----------------------------
revision 1.5
date: 2003/08/04 16:30:07;  author: scottw;  state: Exp;  lines: +170 -81
- add code to follow Apache 'Include' directives

*Release 1.66*
----------------------------
revision 1.4
date: 2003/03/18 17:00:21;  author: scottw;  state: Exp;  lines: +14 -1
- add acknowledgements

*Release 1.65*
----------------------------
revision 1.3
date: 2003/03/17 23:32:47;  author: scottw;  state: Exp;  lines: +1 -1
- use blib/script/savelogs for tests

*Release 1.63*
----------------------------
revision 1.2
date: 2003/03/13 23:05:01;  author: scottw;  state: Exp;  lines: +3 -3
- restore pods to makefile
- version update

*Release 1.63*
----------------------------
revision 1.1
date: 2003/03/07 21:54:08;  author: scottw;  state: Exp;
- move savelogs; fix makefile

*Release 1.62*
----------------------------
revision 1.37
date: 2003/02/12 21:49:04;  author: scottw;  state: dead;  lines: +0 -0
- move savelogs to bin/savelogs.PL

*Release 1.61*
----------------------------
revision 1.36
date: 2003/02/12 07:51:27;  author: scottw;  state: Exp;  lines: +1 -1
- just a version change for package
----------------------------
revision 1.35
date: 2003/02/11 20:50:37;  author: scottw;  state: Exp;  lines: +2 -2
- change perl path

*Release 1.60*
----------------------------
revision 1.34
date: 2003/02/11 20:18:36;  author: scottw;  state: Exp;  lines: +1 -1
- update version string
----------------------------
revision 1.33
date: 2003/02/11 20:17:45;  author: scottw;  state: Exp;  lines: +1 -1
- fix bad 'goto' target
----------------------------
revision 1.32
date: 2003/02/11 19:31:13;  author: scottw;  state: Exp;  lines: +1 -1
- add "grep -v 'no $binary'" to find_binary chunk (workaround for broken Solaris 'which')
----------------------------
revision 1.31
date: 2003/02/11 19:12:30;  author: scottw;  state: Exp;  lines: +107 -93
- refactor initialization/default setting chunk (setting configuration options)

*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
=============================================================================