当前位置: 首页 > 知识库问答 >
问题:

如何为我的消息创建一个特定的记录器?

张权
2023-03-14

我在这上面花了太多的时间,我自己也弄不明白。

我正在编写一些使用一些模块的代码,所以我想为我的消息创建一个特定的日志记录器,而不是其他模块的日志记录器(它们太多了,所以我不想为每个模块设置不同的级别)。

我将我的用例简化为:

import logging                                              
                                                            
logger = logging.getLogger('test')                          
logger.setLevel(level=logging.INFO)                                               
print(logging.Logger.manager.loggerDict)                    
                                                            
logger.debug('This is a debug message')                     
logger.info('This is an info message')                      
logger.warning('This is a warning message')                 
logger.error('This is an error message')                    
logger.critical('This is a critical message')               

当我执行前面的代码时,我希望记录我的信息消息。

结果我得到了:

python3 test.py
{'test': <Logger test (INFO)>}
This is a warning message
This is an error message
This is a critical message

debug相同,它总是打印警告/错误/关键消息,而不是debug/info。

如果我提高了日志记录级别(假设error),它会按照预期工作。

python --version
Python 3.9.1

共有1个答案

孙成化
2023-03-14

更改包级别/根记录器(文档)上的配置。

logging.basicConfig(level=logging.INFO)
 类似资料:
  • 问题内容: 我正在寻找与JavaScript相同的效果。 我今天下午使用Twisted.web编写了一个基于Web的简单解释器。您基本上是通过表单提交Python代码块的,客户端来抓取并执行它。我希望能够发出一个简单的弹出消息,而不必每次都重写一堆样板wxPython或TkInter代码(因为该代码通过表单提交然后消失了)。 我尝试过tkMessageBox: 但这会在后台用tk图标打开另一个窗口

  • 我正在使用规范来构建使用Java的web服务。我使用过滤器进行身份验证和授权,为每个请求调用所有过滤器,我不需要为某个请求只指定一个过滤器,我如何做到这一点?我只想阻止另一个过滤器调用。我不使用,而是使用扩展带有注释的类,如下所示:

  • 我试图创建一个完全独立的第二个上下文/配置/记录器-而不是现有配置/上下文中的记录器。日志消息将发送到STDOUT。 当前代码 上面的.error()调用转到标准输出。请注意,我尝试使用reconfigure()而不是initialize(),但这会打乱我的原始配置。 当我打印出来时,记录器似乎是错误的,它们的名称和上下文似乎是正确的,但处于错误级别。还有一些事情要做,不要做附加物。 从生成器生成

  • 问题内容: 我想使用Java util日志记录按照以下格式为每个请求创建日志文件。 有人请告诉我如何使用Java util日志记录来实现这一目标? 问题答案: 该文件处理器不支持通过生成的文件名的日期和时间从日志管理。 如果要在启动时生成文件名,则可以将FileHandler子类化,并创建一个静态方法来使用SimpleDateFormat生成文件名。该日志管理支持“配置”选项,也将让您安装自定义代

  • 问题内容: 我正在开发一个简单的桌面应用程序(不是webapp)。 这是我的: 如你所见,为了消除控制台中的Spring日志消息,我尝试了以下解决方案: 当我从代码中调用log4j记录器时,记录消息是根据上面指定的模式进行的(这很好)。 但是,最糟糕的是-我仍然从Spring进入控制台的DEBUG级别消息…它们看起来像这里: 无法禁用日志记录消息 他们有不同的模式。好像他们忽略了我的设置。 我还尝

  • 有人能帮我弄清楚这件事吗。 谢了!