python 读log文件

使用Python读取并分析log文件,计算每个事务的平均、最短和最长耗时,同时统计未完成事务的数量和详情。涉及到的数据处理包括时间转换、日志过滤、数据存储等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用python语言实现读取log文件。并分析文件,计算平均每个事务所用的平均时间,最长,最短时间,统计不完整事务(就是有开始没结束的情况)的总数和详情

部分源码:
# -*- coding: cp936 -*-
#操作系统:winxp
#python版本:2.5

#匹配事务并计算
from datetime import datetime
from DTime import DTime
from DataConvert import DataConvert
class log:

def log(self):

#放置未匹配完成的数据
temp=dict()

#存放待匹配的数据
tempTime=dict()

#存放已匹配完成的数据
avg=dict()

dt=DTime()

i=0

b=True

dc=DataConvert()

items=dc.getData()

strs=items.values()

datas=items.keys()

while b:
try:
#判断数据在之前是否已经存在
order=strs[i][0]
key=strs[i][5]
dtime=strs[i][2]
if temp.has_key(key):
#调用时间转换函数
usetime=dt.convertTime(tempTime.get(key))
othertime=dt.convertTime(dtime)
if usetime>othertime:
usetime=usetime-othertime
elif usetime<othertime:
usetime=othertime-usetime
else:
usetime=usetime-usetime
temp.pop(key)
tempTime.pop(key)
avg[order]=usetime
else:
tempTime[key]=dtime
for k in datas:
if items.get(k)==strs[i]:
temp[key]=k
i=i+1
exc
### 如何在Python存储日志的最佳实践 #### 使用`logging`模块配置日志记录器 为了有效地管理应用程序的日志,在Python通常会使用内置的`logging`库来创建和配置日志记录器对象[^1]。 ```python import logging # 创建一个logger对象并设置最低严重级别 logger = logging.getLogger('my_application') logger.setLevel(logging.DEBUG) # 定义控制台处理器并将等级设为debug ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) # 创建formatter并将其添加到handler formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') ch.setFormatter(formatter) # 将handler添加至logger里 logger.addHandler(ch) ``` 上述代码片段展示了如何初始化一个名为`my_application`的日志记录实例,并通过流处理程序(Stream Handler)向标准输出打印调试及以上级别的消息。同时定义了一个格式化字符串用于美化最终显示的信息形式。 #### 配置文件保存路径与轮转策略 除了简单的屏幕输出外,还可以将日志写入特定位置以便后续分析或审计用途: ```python import os from logging.handlers import RotatingFileHandler log_file_path = 'app.log' if not os.path.exists(log_file_path): open(log_file_path, 'w').close() fh = RotatingFileHandler(log_file_path, maxBytes=10*1024*1024, backupCount=5) fh.setLevel(logging.INFO) fh.setFormatter(formatter) logger.addHandler(fh) ``` 这里引入了`RotatingFileHandler`类实现当达到指定大小时自动分割日志文件的功能;同时也指定了最多保留五个旧版本作为备份副本以防数据丢失。 #### 利用环境变量增强灵活性 对于生产环境敏感参数如API密钥等,则推荐利用操作系统的环境变量机制来进行传递而不是硬编码于源码之[^2]。 ```python api_key = os.getenv('MY_API_KEY', 'default_value_if_not_set') try: response = requests.get(f'https://example.com/api?token={api_key}') except Exception as e: logger.error(f'Failed to fetch data from external API: {str(e)}') ``` 此段脚本尝试读取名为`MY_API_KEY`的外部设定值供内部调用所用,如果未能成功获取则采用默认替代方案继续执行流程。此外还示范了异常情况下应该如何正确地记录错误详情给定相应的上下文描述帮助排查问题所在。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值