python日志分析_python 写的日志分析

#coding=utf-8

#!/usr/bin/python

import string

import re

import sys

file =  sys.argv[1]

f = open(file, 'r')

ip_url = []

ip = []

url_url = []

while True:

line = f.readline()

if not line:break

line1 = line.split()

clientIP = line1[0]

status = line1[8]

url = line1[6]

ip_url.append(status)

ip.append(clientIP)

url_url.append(url)

ip_list = list(set(ip))

url_list = list(set(url_url))

status_list = list(set(ip_url))

print "#######统计各个访问状态数#############"

dict = {}

for i in status_list:

dict[ip_url.count(i)] = i

cc = sorted(dict.iteritems(), reverse = True )

for key in cc:

print '\033[1;31;40m'

print '状态是',

print key[1],

print '的有',

print key[0],

print '个'

print '\033[0m'

print "#######统计各个IP状态数#############"

print '\033[1;31;40m'

print 'UV是',

print len(ip_list),

print '个'

print '\033[0m'

print "#####################################"

dict1 = {}

for i in ip_list:

dict1[ip.count(i)] = i

dd = sorted(dict1.iteritems(), reverse = True )

for key1 in dd:

print '\033[1;38;40m'

print '访问IP为',

print key1[1],

print '的有',

print key1[0],

print '个'

print '\033[0m'

print "#######统计各个URL状态数#############"

print '\033[1;31;40m'

print 'PV是',

print len(url_url),

print '个'

print '\033[0m'

print "#####################################"

dict2 = {}

for i in url_list:

dict2[url_url.count(i)] = i

dd = sorted(dict2.iteritems(), reverse = True )

for key1 in dd:

print '\033[1;33;40m'

print '访问此URL:',

print key1[1],

print '的有',

print key1[0],

print '个'

print '\033[0m'

执行结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
分析Gerrit日志,可以使用Python的正则表达式模块和日志解析库。 首先,我们需要读取Gerrit服务器的日志文件。可以使用Python内置的`open()`函数来打开日志文件,例如: ```python with open('/var/log/gerrit/error_log') as f: log_data = f.read() ``` 接下来,我们可以使用正则表达式模块来提取有用的信息。例如,假设我们要提取所有提交的ID,可以使用以下代码: ```python import re commit_regex = re.compile(r'commit ([0-9a-f]{40})') commits = commit_regex.findall(log_data) ``` 这将在日志数据中查找所有40个字符长的十六进制字符串,并将其存储在`commits`列表中。 如果我们想要更复杂的分析,例如查找特定日期范围内的提交,我们可能需要使用一个更高级的日志解析库。Python中有很多这样的库,例如`apache-log-parser`和`logstash`等。 使用日志解析库,我们可以轻松地将日志数据转换为Python对象,并在其中执行查询。例如,使用`apache-log-parser`,以下代码将提取所有提交日期在2019年1月1日至1月31日期间的提交: ```python from apache_log_parser import make_parser from datetime import datetime parser = make_parser('%t') commits = [] for line in log_data.splitlines(): parsed_line = parser(line) commit_date = datetime.strptime(parsed_line['time_received_isoformat'], '%Y-%m-%dT%H:%M:%S.%f') if commit_date.year == 2019 and commit_date.month == 1: commits.append(parsed_line['request_url'].split('/')[-1]) ``` 这将使用日志解析器将日志数据转换为Python对象,并将所有在2019年1月份提交的提交ID存储在`commits`列表中。 无论你选择使用哪种方法,分析Gerrit日志都需要小心处理敏感信息,例如用户凭据和其他敏感数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值