python - RotatingFileHandler 没有在跨越 maxBytes 值时创建文件
问题描述
我正在研究旋转文件处理程序。一旦文件大小超过给定的 maxBytes 值,我需要创建另一个文件。但代码似乎不能正常工作
import logging
from logging.handlers import RotatingFileHandler
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s - %(message)s",
handlers=[
RotatingFileHandler("./app.log", maxBytes=100, backupCount=5)
],
)
logger = logging.getLogger("DemoLogger")
@router.get('/demo_api/v1')
def default_rd(db: Session = Depends(get_db)):
try:
Category_data = db.query(models.table_new.id, models.table_new.Label).filter(models.table_new.classCode=='Category').all()
except Exception:
logger.exception("Database Error")
else:
logger.warning("Fetched Category data")
解决方案
一个基于你的最小示例在程序运行的目录中愉快地创建了 app.log、app.log.1、app.log.2、app.log.3、app.log.4、app.log.5。请注意,/app.log
已更改为./app.log
.
如果应用这些更改没有帮助,那么您的应用程序中的其他代码一定有问题,您没有显示。
import logging
from logging.handlers import RotatingFileHandler
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s - %(message)s",
handlers=[
RotatingFileHandler("./app.log", maxBytes=100, backupCount=5)
],
)
logger = logging.getLogger("DemoLogger")
for x in range(1000):
logger.info("Blah, %s", x)
推荐阅读
- javascript - 根据矩阵B的排序对矩阵A进行排序
- javascript - 有没有办法在查询构建器的“with”子句中添加计数?
- three.js - 在组件内部的Aframe中导入threejs代码
- php - Laravel 发送带有降价的电子邮件不记录
- mysql - 使用 Inner Join/Group_Concat 更新两个表之间的 Inner Join 返回子查询错误
- angular - 无法在角度中设置未定义的属性?
- c++ - 如何在 Xcode 中定义 DOBJC_OLD_DISPATCH_PROTOTYPES?
- kubernetes - Kubernetes:为 Kafka 创建一个入口
- sql - 在非唯一列中生成唯一 ID
- javascript - 没有从 VS Code 中的 webpack 模块获取 Intellisense