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()