From ba3854b0301e92bf96e1ad4ba57e55d99dca1dbf Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Tue, 25 Feb 2014 11:38:35 +0000 Subject: [PATCH] FileLog: reopen renames the file if necessary git-svn-id: https://svn.fhem.de/fhem/trunk@5044 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/92_FileLog.pm | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/fhem/FHEM/92_FileLog.pm b/fhem/FHEM/92_FileLog.pm index cb1433dd3..625c8bed8 100755 --- a/fhem/FHEM/92_FileLog.pm +++ b/fhem/FHEM/92_FileLog.pm @@ -109,12 +109,13 @@ FileLog_Switch($) $fh = new IO::File ">>$cn"; if(!defined($fh)) { Log3 $log, 0, "Can't open $cn"; - return; + return 0; } $log->{currentlogfile} = $cn; $log->{FH} = $fh; + return 1; } - + return 0; } ##################################### @@ -198,12 +199,14 @@ FileLog_Set($@) return "$cmd needs $sets{$cmd} parameter(s)" if(@a-$sets{$cmd} != 2); if($cmd eq "reopen") { - my $fh = $hash->{FH}; - my $cn = $hash->{currentlogfile}; - $fh->close(); - $fh = new IO::File(">>$cn"); - return "Can't open $cn" if(!defined($fh)); - $hash->{FH} = $fh; + if(!FileLog_Switch($hash)) { # No rename, reopen anyway + my $fh = $hash->{FH}; + my $cn = $hash->{currentlogfile}; + $fh->close(); + $fh = new IO::File(">>$cn"); + return "Can't open $cn" if(!defined($fh)); + $hash->{FH} = $fh; + } } elsif($cmd eq "addRegexpPart") { my %h;