我需要一个记录器为每天创建一个新的日志文件,所以我使用 TimedRotatingFileHandler 并让它在午夜旋转。但每次轮换时,只有午夜之后的第一条日志消息会存储在备份文件中。旧日志被删除,“主”日志文件为空。这就是我创建记录器的方式:
def get_logger(name):
# Create the Logger
logger = logging.getLogger(name)
logger.setLevel(logging_lvl)
# Create the Handler for logging data to a file
logger_handler = TimedRotatingFileHandler(logging_filename, when='midnight', backupCount=7)
logger_handler.setLevel(logging_lvl)
# Create a Formatter for formatting the log messages
logger_formatter = logging.Formatter(logging_format)
# Add the Formatter to the Handler
logger_handler.setFormatter(logger_formatter)
# Add the Handler to the Logger
logger.addHandler(logger_handler)
all_logger[name] = logger
return logger
问题可能是我只需按 ctrl+c 就关闭了我的应用程序吗?我必须手动关闭 FileHandler 吗?我在 Linux 机器上使用 Python 3.4。
编辑:logging_lvl、logging_filename、logging_lvl 和 logging_format 是上面定义的变量。