Logging的文件输出和终端需要单独配置,终端的配置项也可以和文件配置的输出不同,推荐配置相同,避免输出上的差异
import logging
import os
from logging.handlers import RotatingFileHandler
logger = logging.getLogger() # 初始化
logger.setLevel(logging.DEBUG) # 设置输出级别
# 设置logging相关信息
formatter = logging.Formatter('%(asctime)s %(name)s [%(levelname)s] %(message)s') # log的输出格式
log_abs_file = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'log.txt')
# 文件输出
handler = RotatingFileHandler(log_abs_file, maxBytes=1024 * 1024, backupCount=10) # 增加一个文件输出;设置文件输出的大小、log文件数量
handler.setFormatter(formatter) # 设置输出的log条目格式
logger.addHandler(handler) # 添加到logger里
# 终端输出
console = logging.StreamHandler() # 增加一个终端输出
console.setFormatter(formatter) # 设置输出的log条目格式
logger.addHandler(console) # 添加到logger里
logger.info("Setting is init") # 输出示例