python logging 重復打印問題


我的問題:

  1. 在項目中由於在做個py文件中定義了handlers,導致在項目中定義幾次就會重復幾次

正確的處理辦法

  1. 只在一個文件中定義內容,然后在其他的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



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM