我的问题:
- 在项目中由于在做个py文件中定义了handlers,导致在项目中定义几次就会重复几次
正确的处理办法
- 只在一个文件中定义内容,然后在其他的py文件中引用即可
import os
import logging
from logging.handlers import TimedRotatingFileHandler
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
# log file
LOG_FILE = os.path.join(BASE_DIR, 'data/info.log')
logger = logging.getLogger("Rotating Log")
logger.setLevel(logging.INFO)
handler = TimedRotatingFileHandler(LOG_FILE,
when="D",
interval=1,
backupCount=5)
logger.addHandler(handler)
logging = logger
更新:
LOG_FILE = os.path.join(BASE_DIR, 'data/info.log')
logger = logging.getLogger("Rotating Log")
logger.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
handler = TimedRotatingFileHandler(LOG_FILE,
when="S",
interval=1,
backupCount=5)
handler.setFormatter(formatter)
logger.addHandler(handler)
# file_handler = logging.FileHandler(LOG_FILE)
# file_handler.setLevel(level=logging.INFO)
# file_handler.setFormatter(formatter)
# 可以打印到控制台
# stream_handler = logging.StreamHandler()
# stream_handler.setLevel(logging.DEBUG)
# stream_handler.setFormatter(formatter)
# logger.addHandler(file_handler)
# logger.addHandler(stream_handler)
logging = logger