python脚本专用的日志配置

137 阅读1分钟

python脚本专用的日志配置


log.py
"""
脚本专用的日志配置,会将日志同时输出到文件和屏幕
"""

import logging
import sys

format = '%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s - %(message)s'
datefmt = "%Y-%m-%d %H:%M:%S"

# 配置 root根记录器
logging.basicConfig(
    level=logging.DEBUG,
    format=format,
)

# 创建 普通记录器
mylogger = logging.getLogger(__name__)

# 创建 handler处理器
console_h = logging.StreamHandler(sys.stdout)
file_h = logging.FileHandler('myapp.log', 'w', 'utf-8')

# 定义 formatter格式化器
formatter = logging.Formatter(format, datefmt=datefmt)
console_h.setFormatter(formatter)
file_h.setFormatter(formatter)

# 增加处理器
mylogger.addHandler(console_h)
mylogger.addHandler(file_h)

# 阻断向父logger的传播
mylogger.propagate = False

# test
if __name__ == '__main__':
    print(mylogger)
    mylogger.error('err test xxx')
    mylogger.info('my info~~~')

使用方法

在脚本中,使用如下方式导入并使用

script.py
from log import mylogger
mylogger.info('my info~~~')
mylogger.error('err test xxx')