场景:多个py文件调用Logging,从主文件导入另外的py文件时日志会反复输出几条
原因参考:
https://blog.youkuaiyun.com/huilan_same/article/details/51858817
解决:将logger实例放到单独的py文件,其他文件都import该py
my_log.py
#! /usr/bin/python
# encoding:utf-8
# 配置文件
import ConfigParser
conf = ConfigParser.ConfigParser()
conf.read('config/db_monitor.conf')
# 日志
import logging
logger = logging.getLogger()
logger.setLevel(logging.INFO)
logfile = conf.get("log","check_logfile")
fh = logging.FileHandler(logfile,mode='a')
fh.setLevel(logging.INFO)
ch = logging.StreamHandler()
ch.setLevel(logging.INFO)
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
fh.setFormatter(formatter)
ch.setFormatter(formatter)
logger.addHandler(fh)
logger.addHandler(ch)
调用:
import my_log as my_log
my_log.logger.info('%s:初始化os_info表' % tags)