Python RotatingFileHandler 未写入 FileHandler 写入的所有结果

标签 python logging rotation handler

我注意到,当我使用 RotatingFileHandler 时,并非所有发送到记录器的事件都会被写入。

如果我更改为 FileHandler,所有内容都会被写入。

如果我像这样设置我的处理程序:

cjson_handler = RotatingFileHandler('{}/cjson.log'.format(log_directory), maxBytes=1024, backupCount=2)

仅将以下代码中的第一个事件写入日志文件。

    cjson_logger.info("system_info", extra={"CPU":cpu_details, "ROOT_USERS": users})
    core_list_small = core_list[:int(len(core_list) / 2)]
    cjson_logger.info("system_info", extra={"CPU": cpu_details_small, "ROOT_USERS": users})

如果我更改为:

cjson_handler = logging.FileHandler('{}/cjson.log'.format(log_directory))

两个事件均已写入。这两个事件都使用相同的处理程序,但发生的时间非常接近。这与旋转写入日志与文件处理程序的方式有关吗?

在使用旋转处理程序编写多个事件来记录时,我需要做一些不同的事情吗?

最佳答案

如果将 backupCount 设置为非零,则将创建 cjson.log.1cjson.log.2 如果 cjson.log 超过 maxBytes。我怀疑您的日志消息超出范围,并且另一条消息存储在 .1.2 文件中。

但是,需要确定有关您的格式、您的 extra 字典的外观以及您如何处理 extra 的更多信息。

关于Python RotatingFileHandler 未写入 FileHandler 写入的所有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55768645/

相关文章:

ruby-on-rails - 无法访问生产中的日志文件

python - AppEngine 中的自定义日志

python - header 中返回的内容长度,用于使用 nginx、uwsgi 和 Flask 进行分块传输编码

python - 如何为普通 pgm 格式编写 PIL 图像过滤器?

java - 无法找到附加程序

Android:旋转更改后对话框等恢复

iphone - 纵向应用程序 - 横向模态视图 - 无自动旋转

python - 生产者和消费者——Python中的多线程

python - 如何在 OS X Leopard 上安装 MySQL 和 Python MySQL 包?或者我如何学习如何使用 OS X 成为网络开发人员?

c++ - 如何在其他部件旋转时阻止物体旋转?