Python apache日志解析器不支持';我不能处理我的日志文件
嗨,我正试图制定一个计划,将为我清理一堆日志文件,但我似乎无法让这个简单的计数器与我的日志文件工作。我对这种类型的编程还是新手,但我怀疑我可能使用了错误类型的解析器来处理我的日志。我以为它们是标准的apache日志,但我一定弄错了。我已经附上了我的代码和日志文件的一部分,以防有帮助(IP地址被审查)。谢谢 sad-access\U log-20180902.log的内容Python apache日志解析器不支持';我不能处理我的日志文件,python,Python,嗨,我正试图制定一个计划,将为我清理一堆日志文件,但我似乎无法让这个简单的计数器与我的日志文件工作。我对这种类型的编程还是新手,但我怀疑我可能使用了错误类型的解析器来处理我的日志。我以为它们是标准的apache日志,但我一定弄错了。我已经附上了我的代码和日志文件的一部分,以防有帮助(IP地址被审查)。谢谢 sad-access\U log-20180902.log的内容 ********- - [26/Aug/2018:03:50:04 +0100] "GET / HTTP/1.1" 301 2
********- - [26/Aug/2018:03:50:04 +0100] "GET / HTTP/1.1" 301 255
******** - - [26/Aug/2018:03:50:03 +0100] "GET /login/ HTTP/1.1" 200 5836
********* - - [26/Aug/2018:03:50:05 +0100] "GET / HTTP/1.1" 200 6812
************ - - [26/Aug/2018:03:50:11 +0100] "GET / HTTP/1.1" 200 6812
嗨,欢迎来到StackOverflow!下一个问题请记住这一点
- 将您遇到的所有相关错误消息都包括在内,这被认为是本网站的良好做法
- 你输入了代码和数据-太棒了!但是,您的代码格式不正确,这很糟糕,因为Python的缩进非常易变
- 您的日志文件不包含
-string。解析将失败UserAgent
应该解析什么?日志文件中不包含%>s
字符- 正如我提到的,日志中的最后一个字段不是UA;相反,它似乎更可能是响应的大小,所以我只使用了格式字符串
import apache_log_parser
parser = apache_log_parser.make_parser('%h %l %u %t "%r" %s %B')
count = 0
with open('foo.log') as in_f:
for line in in_f:
line = parser(line)
count = count + 1
print(count)
以防万一您没有读到,这是指向for
apache\u log\u parser
欢迎,它看起来不像PHP
。那么到底是什么问题呢?只是好奇我的回答是否有助于您解决这个问题!如果是的话,我很高兴你能把答案标记为接受。如果没有,也许我们可以进一步帮助你
import apache_log_parser
parser = apache_log_parser.make_parser('%h %l %u %t "%r" %s %B')
count = 0
with open('foo.log') as in_f:
for line in in_f:
line = parser(line)
count = count + 1
print(count)