Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在运行时更改python日志级别_Python_Logging - Fatal编程技术网

在运行时更改python日志级别

在运行时更改python日志级别,python,logging,Python,Logging,在log4net中,我们可以在运行时将xml配置文件中的日志级别从DEBUG更改为ERROR,例如,更改将立即生效 有没有一种用python实现的方法?我还不知道怎么做 此外,由于某种原因,当日志文件设置为不带任何文件夹时(请参见我在底部使用的配置示例-yaml dictionary配置文件),它无法旋转文件。如果我将其更改为代码所在路径以外的任何其他路径,它会像一个符咒一样工作,并创建20个文件。 我很乐意得到任何帮助。 谢谢 字典配置提取示例: rotatingFile:

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

有没有一种用python实现的方法?我还不知道怎么做

此外,由于某种原因,当日志文件设置为不带任何文件夹时(请参见我在底部使用的配置示例-yaml dictionary配置文件),它无法旋转文件。如果我将其更改为代码所在路径以外的任何其他路径,它会像一个符咒一样工作,并创建20个文件。 我很乐意得到任何帮助。 谢谢

字典配置提取示例:

  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()
    函数。但这必须在观察者程序或其他程序中完成