Loguru日志库:已声明日志文件后如何修改文件名?
Loguru修改已指定的日志文件名方法
可以修改,但Loguru不支持直接修改已添加的日志处理器(handler)的文件名,得通过移除旧处理器+添加新处理器的方式实现。
具体操作步骤:
- 保存初始
logger.add()返回的处理器ID - 需要修改文件名时,用这个ID移除旧的日志处理器
- 重新调用
logger.add()指定新的文件名
代码示例:
from loguru import logger # 保存添加文件日志时返回的handler ID handler_id = logger.add('dummy.log', format="{time:YYYY-MM-DD HH:mm:ss} {level} {message}") # 这里是你的业务代码逻辑 # ..... # 要修改文件名时:先移除旧handler,再添加新的 logger.remove(handler_id) logger.add('new_dummy.log', format="{time:YYYY-MM-DD HH:mm:ss} {level} {message}") logger.debug('my message') # 此时日志会写入new_dummy.log
特殊情况处理:
如果当初没保存handler ID,也可以用logger.configure()重置所有日志处理器,直接替换成新的文件配置(注意这会清除所有自定义的处理器,只保留你配置的新处理器):
logger.configure( handlers=[ {"sink": "new_dummy.log", "format": "{time:YYYY-MM-DD HH:mm:ss} {level} {message}"} ] )
注意:调用
logger.remove()时如果不传参数,会移除所有非默认的处理器(默认处理器是控制台输出),所以如果只想修改文件日志,建议精准传入对应的handler ID。
内容的提问来源于stack exchange,提问作者LeMoussel
相关产品推荐
相关产品推荐

