Aiempi hahmotelma skriptin mahdollisesta toimintalogiikasta. Mahdollistaisi sen, että lokeista luetaan vain uudet osat, ei jo luettua uudestaan. Kuitenkin tarpeettoman monimutkaista?
# alustus
if ei löydy tilaa taulusta:
luetaan access.log.1 jos on (eka päivä heitetään hukkaan)
luetaan access.log
else:
# sivusto.mtime == mtime(access.log.1)
if rotatoitu:
seek(access.log.1, seekpoint)
tiedostolista = [access.log.1, access.log]
else:
seek(access.log, seekpoint)
tiedostolista = [access.log]
if not md5(rivi) == md5:
# jos rotatoitu huonosti
alustus()
else:
jatketaan lukemista
Tilataulu (mihin kelataan) (onko rotatoitu)
sivusto | seekpoint | al1 mtime | md5(viimeinen rivi)
yx.fi 123899 1234567890 | abcdabbacd
= edellisen päivän
viimeisen rivin alku
Hitit sivusto | päivä | tavuja | hittejä yx.fi 2009-11-10 100000 2900 yx.fi 2009-11-10 100000 2900 derbian.fi 2009-11-10 100000000 2900000 derbian.fi 2009-11-10 100000000 2900000