最近研究了下使用python记录程序运行的log日志
首先放上我找到的参考链接:
具体原理的话大家可以参照链接进行学习.
我这里是自己设置了一个脚本当作模块MyLogger.py
#!/usr/bin/python
# -*-coding:utf8 -*-
__author__ = "myshu"
import sys
import os
import logging
'''
设置可以调用Logging单独的模块,设置固定格式直接进行调用
'''
def Logger(Modelname, out_dir):
'''
日志功能模块
'''
# 创建一个logger
logger = logging.getLogger(Modelname)
logger.setLevel(logging.DEBUG)
# 创建一个handler,用于写入日志文件
fn = logging.FileHandler(out_dir + '/' + Modelname + '.log')
fn.setLevel(logging.DEBUG)
# 定义handler的输出格式,eg:[2020-03-17 09:24:40,581 pca] INFO 此处开始运行【pca】
# formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
formatter = logging.Formatter('[%(asctime)s %(name)s] %(levelname)s %(message)s')
fn.setFormatter(formatter)
# 给logger添加handler
logger.addHandler(fn)
return logger
然后在test.py脚本中直接调用即可
#!/usr/bin/python
# -*-coding:utf8 -*-
import sys
import os
# 可以指定lib的位置 (如果要调用MyLogger.py,则可以将MyLogger.py脚本拷贝到如下目录)
sys.path.append("../lib")
# 调用MyLogger
from MyLogger import Logger
import traceback
outdir = "/home/myshu"
# 导入logger函数
log = Logger("test", outdir)
# 生成Log信息
log.info('info message')
log.error('error message')
log.debug('debug message')
log.warning('warn message')
log.critical('critical message')
# 利用try except输出报错代码行
try:
... #主要代码
except Exception as e:
logging.error("主程序报错:")
logging.error(e)
logging.error("\n" + traceback.format_exc())
最后会在/home/myshu目录下生成一个test.log日志文件. 文件的内容如下:
test.log
大家也可以根据自己的需求来改.