前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python日志解析

python日志解析

作者头像
py3study
发布2020-01-14 14:45:23
5150
发布2020-01-14 14:45:23
举报
文章被收录于专栏:python3

Python字典的setdefault()方法

setdefault(key[, default])

If key is in the dictionary, return its value. If not, insert key with a value of default and return default. default defaults to None.

如果键在字典中,返回这个键所对应的值。如果键不在字典中,向字典 中插入这个键,并且以default为这个键的值,并返回 default。default的默认值为None

代码语言:javascript
复制
>>> dict = {} 
>>> dict [ 'key' ] = 'a' 
>>>字典 
{ 'key':  'a' } 
>>> dict.setdefault('key',  'b')   #键key存在,故返回简直a。 
'一种' 
>>>字典 
{ 'key':  'a' } 
>>> dict.setdefault('key0' ,  'b' )  #键key0不存在,故插入此键,并以b为键值。 
'b' 
>>>字典 
{ 'key0' :  'b' ,  'key' :  'a' } 

日志分析

利用字典分析apache访问日志的脚本,以提取IP地址,字节数和状态

代码语言:javascript
复制
#!/ usr / bin / env python 
“” 
用法: 
apache_log.py some_log_file 
 
该脚本使用一个命令行参数:要解析的日志文件的名称,然后解析lof文件并生成一个报告,该报告将远程主机与传输给它们的字节数相关联。 
“” 
 
导入 系统 
 
def  dictify_logline(line): 
        split_line = line.split() 
        return  { 'remote_host' :split_line [ 0 ],'status' :split_line [ 8 ],'bytes_sent' :split_line [ 9 ]} 
 
def  generate_log_report(logfile): 
        report_dict = {} 
        对于 行  中 的日志文件: 
                line_dict = dictify_logline(行) 
                打印 line_dict 
                尝试: 
                        bytes_sent = int(line_dict [ 'bytes_sent' ]) 
                除了 ValueError: 
                        继续 
                report_dict.setdefault(line_dict [ 'remote_host' ],[])。append(bytes_sent) 
        返回 report_dict 
 
如果 __name__ ==  “ __main__” : 
        如果不是 len(sys.argv)>  1 :  
                打印 __doc__ 
                sys.exit(1 ) 
        infile_name = sys.argv [ 1 ] 
        尝试: 
                infile = open(infile_name,'r' ) 
        除了 ValueError: 
                打印“您必须指定要解析的有效文件”  
                sys.exit(1 ) 
        log_report = generate_log_report(infile) 
        打印 log_report 
        infile.close() 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/07/15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档