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格式的时候,要保证分隔符是准确的
posted @ 2025-03-10 11:01  qsl_你猜  阅读(25)  评论(0)    收藏  举报