Was mir aufgefallen ist, dass mechanize zum Download der Datei relativ lange braucht (gut 2-3x langsamer als wenn ich die Datei direkt aufrufe), ist das normal?
Ansonsten würde ich mich riesig über Verbesserungsvorschläge und besonders über "Schönheits"-Hinweise freuen, wie man den Code effizienter / kompakter machen kann.
Danke schon mal an alle die sich die Zeit nehmen.
Code: Alles auswählen
# -*- coding: cp1252 -*-
import re
import time,calendar,os
from mechanize import Browser
LOG_LEVEL_NOTICE='PHP Notice:'
LOG_LEVEL_FATAL='PHP Fatal error:'
MODE_WEB="http://webserver/logs/php_error.log"
MODE_FILE="log.log"
log_level=(LOG_LEVEL_FATAL,LOG_LEVEL_NOTICE)
source_pattern=('/t-intranet/phpskripte','t-intranet/modules/AModule')
timeIntervall=900
mode=MODE_WEB
def main():
    browser=None
    if mode==MODE_WEB:
        browser=Browser()
        browser.open(MODE_WEB)
        lines=browser.response().read()
        lines=lines.split("\n")
    else:
        lines=open(MODE_FILE).readlines()
    
    logFile=open("FilterLog.txt","w")
    for line in lines[:0:-1]:
        if checkTimeStamp(line):
            if all( [ any([line.find(substring)!=-1 for substring in log_level]),any([line.find(substring)!=-1 for substring in source_pattern])]):
                logFile.write(line+"\n")
        else:
            if (len(line)!=0):
                break
        
    if browser!=None:
        browser.close()
    logFile.close()
    os.startfile("FilterLog.txt")
def checkTimeStamp(line):
    logtime=re.findall("\[(.*?)\]",line)
    if len(logtime)==0 or logtime[0].count(":")!=2:
        return False
    logtime=time.strptime(logtime[0],'%d-%b-%Y %H:%M:%S')
    return time.mktime(time.localtime()) - time.mktime(logtime) <= timeIntervall
if __name__=='__main__':
    main()
