在运行时更改python日志级别
在log4net中,我们可以在运行时将xml配置文件中的日志级别从DEBUG更改为ERROR,例如,更改将立即生效 有没有一种用python实现的方法?我还不知道怎么做 此外,由于某种原因,当日志文件设置为不带任何文件夹时(请参见我在底部使用的配置示例-yaml dictionary配置文件),它无法旋转文件。如果我将其更改为代码所在路径以外的任何其他路径,它会像一个符咒一样工作,并创建20个文件。 我很乐意得到任何帮助。 谢谢 字典配置提取示例:在运行时更改python日志级别,python,logging,Python,Logging,在log4net中,我们可以在运行时将xml配置文件中的日志级别从DEBUG更改为ERROR,例如,更改将立即生效 有没有一种用python实现的方法?我还不知道怎么做 此外,由于某种原因,当日志文件设置为不带任何文件夹时(请参见我在底部使用的配置示例-yaml dictionary配置文件),它无法旋转文件。如果我将其更改为代码所在路径以外的任何其他路径,它会像一个符咒一样工作,并创建20个文件。 我很乐意得到任何帮助。 谢谢 字典配置提取示例: rotatingFile:
rotatingFile:
class : logging.handlers.RotatingFileHandler
formatter: jajahFormater
level: DEBUG
filename: chs.log
maxBytes: 20
backupCount: 20
在记录器级别使用Logger.setLevel()
,在处理程序级别使用Handler.setLevel()
import logging
my_logger = logging.getLogger('myloggername') #Assumes you have configured the logger somewhere
my_logger.setLevel(logging.INFO)
你真的应该发布两个问题
.NET
基础结构监视配置文件并自动加载它以获得更改,但Python没有,因此您需要自己编写代码chs.log
文件可能处于打开状态(例如,在编辑器中),这将防止翻滚-没有更多信息,我无法判断我使用process explorer检查此文件是否有其他句柄,但没有。您可以在配置文件中定义它并更改配置文件。但是你必须重新开始这个过程。对于运行时,我不知道有什么现成的东西,尽管您可能可以随时观察配置文件中的更改并重新加载日志记录。或者,您也可以提取已更改的参数“log_level”,并调用
setLevel()
函数。但这必须在观察者程序或其他程序中完成