Apache access log parsing for multi-site vhost traffic statistics
Python
Pull request Compare This branch is 1 commit ahead, 15 commits behind kapsiry:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
Parser.py
README.markdown
model.py
parselogs.py

README.markdown

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