在运行时更改python日志级别

问题描述:

在log4net中,我们可以将运行时的xml配置文件中的日志级别从DEBUG更改为ERROR,例如该更改立即生效。在运行时更改python日志级别

有没有办法在python中做到这一点?我还没有想出如何去做。

此外,由于某些原因,如果日志文件设置为没有任何文件夹(请参阅配置示例,我在底部使用 - yaml字典配置文件),它无法旋转文件。如果我将它更改为其他代码所在的其他路径,它就像魅力一样,并创建20个文件。 我很乐意为您提供帮助。 谢谢!

词典配置提取例:

rotatingFile: 
     class : logging.handlers.RotatingFileHandler 
     formatter: jajahFormater 
     level: DEBUG 
     filename: chs.log 
     maxBytes: 20 
     backupCount: 20 

从记录器级别的docs使用Logger.setLevel()Handler.setLevel()在处理器级别

import logging 

my_logger = logging.getLogger('myloggername') #Assumes you have configured the logger somewhere 
my_logger.setLevel(logging.INFO) 
+1

问题是如何在运行时执行它... – Alon1980

+0

您可以在配置文件中定义它并更改配置文件。但是你必须重启这个过程。对于_runtime_,我并不知道什么是开箱即使您可能会观察配置文件中的更改并在发生这种情况时重新加载日志记录。或者,您可以提取已更改的参数'log_level'并调用setLevel()函数。但是,这将不得不在一个观察者进程或 – RedBaron

你真的应该已经张贴了两个问题。

  1. .NET基础架构监视配置文件并自动加载它以获取更改,但Python不会 - 所以您需要自己编写代码。
  2. 代码目录中的chs.log文件可能会保持打开状态(例如在编辑器中),这将防止翻转 - 如果没有更多信息,我不能分辨。
+0

我使用进程资源管理器来检查是否有其他句柄到这个文件,他们没有。 – Alon1980