美文网首页编程学习
Python-根据logging模块自定义log

Python-根据logging模块自定义log

作者: myshu | 来源:发表于2020-03-19 15:45 被阅读0次

最近研究了下使用python记录程序运行的log日志
首先放上我找到的参考链接:

  1. https://www.jianshu.com/p/feb86c06c4f4

具体原理的话大家可以参照链接进行学习.
我这里是自己设置了一个脚本当作模块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

大家也可以根据自己的需求来改.

相关文章

网友评论

    本文标题:Python-根据logging模块自定义log

    本文链接:https://www.haomeiwen.com/subject/qqccyhtx.html