mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-04 22:19:38 +00:00
get needs to check for filename change too
git-svn-id: https://svn.fhem.de/fhem/trunk@1175 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
c43b5f202f
commit
2c46fbf166
@ -62,6 +62,29 @@ FileLog_Undef($$)
|
|||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub
|
||||||
|
FileLog_Switch($)
|
||||||
|
{
|
||||||
|
my ($log) = @_;
|
||||||
|
|
||||||
|
my $fh = $log->{FH};
|
||||||
|
my @t = localtime;
|
||||||
|
my $cn = ResolveDateWildcards($log->{logfile}, @t);
|
||||||
|
|
||||||
|
if($cn ne $log->{currentlogfile}) { # New logfile
|
||||||
|
$fh->close();
|
||||||
|
HandleArchiving($log);
|
||||||
|
$fh = new IO::File ">>$cn";
|
||||||
|
if(!defined($fh)) {
|
||||||
|
Log(0, "Can't open $cn");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$log->{currentlogfile} = $cn;
|
||||||
|
$log->{FH} = $fh;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
sub
|
sub
|
||||||
FileLog_Log($$)
|
FileLog_Log($$)
|
||||||
@ -81,24 +104,11 @@ FileLog_Log($$)
|
|||||||
if($n =~ m/^$re$/ || "$n:$s" =~ m/^$re$/) {
|
if($n =~ m/^$re$/ || "$n:$s" =~ m/^$re$/) {
|
||||||
my $t = TimeNow();
|
my $t = TimeNow();
|
||||||
$t = $dev->{CHANGETIME}[$i] if(defined($dev->{CHANGETIME}[$i]));
|
$t = $dev->{CHANGETIME}[$i] if(defined($dev->{CHANGETIME}[$i]));
|
||||||
$t =~ s/ /_/o; # Makes it easier to parse with gnuplot
|
$t =~ s/ /_/; # Makes it easier to parse with gnuplot
|
||||||
|
|
||||||
|
FileLog_Switch($log);
|
||||||
|
|
||||||
my $fh = $log->{FH};
|
my $fh = $log->{FH};
|
||||||
my @t = localtime;
|
|
||||||
my $cn = ResolveDateWildcards($log->{logfile}, @t);
|
|
||||||
|
|
||||||
if($cn ne $log->{currentlogfile}) { # New logfile
|
|
||||||
$fh->close();
|
|
||||||
HandleArchiving($log);
|
|
||||||
$fh = new IO::File ">>$cn";
|
|
||||||
if(!defined($fh)) {
|
|
||||||
Log(0, "Can't open $cn");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
$log->{currentlogfile} = $cn;
|
|
||||||
$log->{FH} = $fh;
|
|
||||||
}
|
|
||||||
|
|
||||||
print $fh "$t $n $s\n";
|
print $fh "$t $n $s\n";
|
||||||
$fh->flush;
|
$fh->flush;
|
||||||
$fh->sync if !($^O eq 'MSWin32'); #not implemented in Windows
|
$fh->sync if !($^O eq 'MSWin32'); #not implemented in Windows
|
||||||
@ -179,12 +189,14 @@ FileLog_Get($@)
|
|||||||
$internal = 1;
|
$internal = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FileLog_Switch($hash);
|
||||||
|
|
||||||
if($inf eq "-") {
|
if($inf eq "-") {
|
||||||
$inf = $hash->{currentlogfile};
|
$inf = $hash->{currentlogfile};
|
||||||
} else {
|
} else {
|
||||||
my $linf = "$1/$inf" if($hash->{currentlogfile} =~ m,^(.*)/[^/]*$,o);
|
my $linf = "$1/$inf" if($hash->{currentlogfile} =~ m,^(.*)/[^/]*$,o);
|
||||||
if(!-f $linf) {
|
if(!-f $linf) {
|
||||||
$linf = AttrValue($hash->{NAME},"archivedir",".") ."/". $inf;
|
$linf = AttrVal($hash->{NAME},"archivedir",".") ."/". $inf;
|
||||||
return "Error: cannot access $linf" if(!-f $linf);
|
return "Error: cannot access $linf" if(!-f $linf);
|
||||||
}
|
}
|
||||||
$inf = $linf;
|
$inf = $linf;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user