NAME
Log::Log4perl::Config::Watch - Detect file changes
SYNOPSIS
use Log::Log4perl::Config::Watch;
my $watcher = Log::Log4perl::Config::Watch->new(
file => "/data/my.conf",
check_interval => 30,
);
while(1) {
if($watcher->change_detected()) {
print "Change detected!\n";
sleep(1);
}
}
DESCRIPTION
This module helps detecting changes in files. Although it comes with the Log::Log4perl
distribution, it can be used independly.
The constructor defines the file to be watched and the check interval in seconds. Subsequent calls to change_detected()
will
return a false value immediately without doing physical file checks if
check_interval
hasn't elapsed.perform a physical test on the specified file if the number of seconds specified in
check_interval
have elapsed since the last physical check. If the file's modification date has changed since the last physical check, it will return a true value, otherwise a false value is returned.Bottom line:
check_interval
allows you to call the functionchange_detected()
as often as you like, without paying the performing a significant performance penalty because file system operations are being performed (however, you pay the price of not knowing about file changes untilcheck_interval
seconds have elapsed).The module clearly distinguishes system time from file system time. If your (e.g. NFS mounted) file system is off by a constant amount of time compared to the executing computer's clock, it'll just work fine.
To disable the resource-saving delay feature, just set
check_interval
to 0 andchange_detected()
will run a physical file test on every call.If you already have the current time available, you can pass it on to
change_detected()
as an optional parameter, like inchange_detected($time)
which then won't trigger a call to
time()
, but use the value provided.
SEE ALSO
AUTHOR
Mike Schilli, <log4perl@perlmeister.com>
COPYRIGHT AND LICENSE
Copyright 2003 by Mike Schilli <m@perlmeister.com> and Kevin Goess <cpan@goess.org>.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.