log的常用配置
一、 背景
写Python时,有时需要log文件
直接的log文件,无法读取,最好能够转成excel形式。
二、代码
import logging import pandas as pd logging.basicConfig(format='[%(asctime)s - %(filename)s - line:%(lineno)d - %(levelname)s - %(message)s]', datefmt='%Y-%m-%d %H:%M:%S', level=logging.DEBUG, filename="my.log", filemode="a" ) # 下面是在控制台打印出来 console_handler = logging.StreamHandler() # 创建一个控制台处理程序 console_handler.setLevel(logging.DEBUG) # 设置其级别为DEBUG console_formatter = logging.Formatter(fmt='%(asctime)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S',) # 创建一个格式化程序,用于在控制台上显示日志 console_handler.setFormatter(console_formatter) # 将格式化程序添加到控制台处理程序 logging.getLogger('').addHandler(console_handler) # 将控制台处理程序添加到根日志记录器 print('*'*20+ "start" + '*'*20) logging.debug('This message is debug level') logging.info('This message is info level') logging.warning('This message is warning level') print('*'*20+ "end" + '*'*20) logfile = open('my.log', 'r') # 第一种方法:分布拆解 d = pd.DataFrame() log_list = [] for line in logfile: line = line[1:-2] log = line.split(" - ") log_list.append(log) df = pd.DataFrame(log_list, columns=['datetime', 'filename', 'line','levelname', 'message']) df['line'] = df['line'].apply(lambda x:int(x[5:])) df.to_excel('log.xlsx', index=False)



三、 总结
- log在控制台打印出,即红色字体,是一起打印出来的。
- 转成df格式的时候,要保证分隔符是准确的

浙公网安备 33010602011771号