diff --git a/fhem/FHEM/92_FileLog.pm b/fhem/FHEM/92_FileLog.pm index 7bddf06fd..c1dabd08b 100755 --- a/fhem/FHEM/92_FileLog.pm +++ b/fhem/FHEM/92_FileLog.pm @@ -45,6 +45,7 @@ FileLog_Initialize($) archiveCompress archivecmd archivedir + archivesort createGluedFile:0,1 disable:0,1 disabledForIntervals @@ -1257,6 +1258,7 @@ FileLog_regexpFn($$) +
  • archivecmd / archivedir / nrarchive
    When a new FileLog file is opened, the FileLog archiver wil be called. @@ -1265,6 +1267,9 @@ FileLog_regexpFn($$) section), and there is a new entry to be written into the file.
    + archivesort may be the (default) alphanum or timestamp, and specifies + how the last files are computed.
    + If the attribute archivecmd is specified, then it will be started as a shell command (no enclosing " is needed), and each % in the command will be replaced with the name of the old logfile.
    @@ -1574,6 +1579,7 @@ FileLog_regexpFn($$) +
  • archivecmd / archivedir / nrarchive
    Wenn eine neue FileLog-Datei geöffnet wird, wird der FileLog @@ -1583,6 +1589,10 @@ FileLog_regexpFn($$) (define) beschrieben werden) und gleichzeitig ein neuer Datensatz in diese Datei geschrieben werden muss.
    + archivedir kann auf dem (voreingestellten) Wert alphanum oder timestamp + gesetzt werden, und bestimmt die Methode für die + Reihenfolgenberechnung der Dateien.
    + Wenn das Attribut archivecmd benutzt wird, startet es als shell-Kommando ( eine Einbettung in " ist nicht notwendig), und jedes % in diesem Befehl wird durch den Namen des alten Logfiles ersetzt.
    diff --git a/fhem/fhem.pl b/fhem/fhem.pl index 56dac255f..515fbd20b 100755 --- a/fhem/fhem.pl +++ b/fhem/fhem.pl @@ -270,6 +270,7 @@ my @globalAttrList = qw( apiversion archivecmd archivedir + archivesort:timestamp,alphanum archiveCompress autoload_undefined_devices:1,0 autosave:1,0 @@ -3453,8 +3454,9 @@ HandleArchiving($;$) my @t = localtime; $dir = ResolveDateWildcards($dir, @t); return if(!opendir(DH, $dir)); - my @files = sort { (stat("$dir/$a"))[9] cmp (stat("$dir/$b"))[9] } #66896 - grep {/^$file$/} readdir(DH); + my @files = sort grep {/^$file$/} readdir(DH); + @files = sort { (stat("$dir/$a"))[9] cmp (stat("$dir/$b"))[9] } @files + if(AttrVal("global", "archivesort", "alphanum") eq "timestamp"); closedir(DH); my $max = int(@files)-$nra;