Am Freitag, 19. Oktober 2012, 04:42:27 schrieb Dennis G:
> [...]
> Das entspricht Willis Idee und wäre doch eine Lösung die nicht die
> Daten verfälscht, saubere Plots generiert, auch bei Logrotate
> funktioniert und nur minimal mehr Daten im Log produziert...
>
> Was spricht dagegen ?
aus meiner sicht spricht dagegen, das ein logfile eintrag eben nur von einem
modul, das für den jeweiligen logfileeintrag zuständig ist, geschrieben werden
sollte.
es geht nicht um die "minimalen daten mehr" im logfile, sondern wer die hoheit
über einen logeintrag behält.
mir ist bisher (zumindest nicht bewusst) noch kein logfile im kompletten
unix/linux umfeld untergekommen, das diesen "workaround" "schreibe alte
zustände, bei einer rotation in neues logfile" vornimmt. ein logfile eintrag
ist (zumindest aus meiner sicht) _immer_ ein abbild einer momentaufnahme.
daher auch der timestamp.
beispiel anhand eines monatlichen logrotate:
wenn z.b. ein device am 30.09.2012 um 12:12 uhr seinen letzten eintrag in der
folgenden form erzeugt:
30.09.2012 12:12 foobar: moo
und darauf hin das logfile noch bis 23:59:59 mit weiteren informationen aus
anderen devices "gefüttert" wird, dann kann doch nicht das logfile am
01.10.2012 00:00:00 mit dem eintrag:
30.09.2012 12:12 foobar: moo
anfangen! ich erwarte in einem logfile, das z.b. fhem-2012-10.log heisst
_keine_ daten mehr aus 09.
würde man nun aber sagen: "ok, filelog holt sich die aktuellen werte und
schreibt sie rein" müsste der eintrag aus meiner sicht mit dem timestamp des
letzten readings stattfinden. das bedeutet, das im neuen logfile von 10-2012
ein eintrag aus 09-2012 landet.
würde man nun sagen "filelog holt sich den letzten wert (30.09.2012 12:12) und
schreibt ins logfile "01.10.2012 00:00" dann ist das schlichtweg falsch, da
das device tatäschlich diese meldung nicht vorgenommen hat. tatsächlich hat
das device in diesem beispiel seinen letzten eintrag am 30.09.2012 um 12:12
vorgenommen und eben nicht am 01.10.2012 um 00:00. dies verfälscht das
logfile.
bei den gemachten vorschlägen handelt es sich aus meiner sicht um eine
"verwässerung" zwischen der protokolierung und der zur darstellung benötigten
werte. und wenn für letzteres werte benötigt werden, dann sollte das logfile
eben unangetastet bleiben.
ein logfile nutzt man eben auch zur fehleranalyse. ein plot stellt _ein_
_bestimmtes_ verhaltensmuster halt hübsch dar. das ist aus meiner sicht der
gravierende unterschied.
gruss martin