禁用特定包的日志记录

2023-11-21

我正在我的应用程序中实现 python 日志记录,并且我希望能够利用“默认”根设置。我想使用根设置,因为我不想在配置文件中为每个模块定义一个记录器。

当我打开根记录器的调试级别日志记录时,我遇到了 QPID Python 客户端 API 的问题。我的日志文件中充满了 qpid 调试语句:

2011-03-16 09:16:18,664 - qpid.messaging.io.ops - 调试 - 发送[8de6b2c]:..

2011-03-16 09:16:18,667 - qpid.messaging.io.raw - 调试 - ..

2011-03-16 09:16:18,668 - qpid.messaging.io.raw - 调试 - 读取[8de6b2c]:..

2011-03-16 09:16:18,668 - qpid.messaging.io.ops - 调试 - ..

Etc..

所以两个主要问题:

1)有没有办法只为我的模块启用*日志记录,而无需为每个模块定义记录器?换句话说,有没有办法进行共享“记录器设置”,因此不必为每个记录器定义 logger_ 部分,有没有办法默认设置?

就像是:

[logger_shared_settings]
    loggers = logger_A,logger_B,logger_C,logger_D
    level=DEBUG

2)或者我如何通过配置文件过滤掉 qpid 包日志记录?

这是 log.conf 文件:

[loggers]
keys=root

[handlers]
keys=consoleHandler,fileHandler,nullHandler

[formatters]
keys=simpleFormatter

[logger_root]
level=DEBUG
handlers=consoleHandler,fileHandler

[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)

[handler_fileHandler]
class=logging.handlers.RotatingFileHandler
level=DEBUG
formatter=simpleFormatter
args=('out.log',)

这是我试图避免的:

[loggers]
keys=root, a, b, c, d

[handlers]
keys=consoleHandler,fileHandler,nullHandler

[formatters]
keys=simpleFormatter

[logger_root]
level=ERROR
handlers=nullHandler


[logger_a]
level=DEBUG
handlers=consoleHandler,fileHandler


[logger_b]
level=DEBUG
handlers=consoleHandler,fileHandler

[logger_c]
level=DEBUG
handlers=consoleHandler,fileHandler

使用 python2.7,您可以将 NullHandler 设置为 qpid 记录器:

[logger_qpid]
level=NOTSET
handlers=nullHandler
qualname=qpid
propagate=0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

禁用特定包的日志记录 的相关文章

随机推荐

  • Django 中的条件包含标签

    我遇到了 Django 模板系统非常奇怪的行为 我有一个模板文件 即test html 它递归地包含自身 include test html 当然 这样的模板没有机会被渲染 因为没有完成条件 好的 让我们尝试以下操作 if test fal
  • 按照设计,为什么在声明委托类型时必须指定参数名称?

    为什么必须指定参数名称x如下 public delegate void XXX int x 声明委托类型时 对我来说 参数名称x未使用 因此如果我们可以重写如下会更简单 public delegate void XXX int 请让我知道为
  • 如何停止Android应用程序中的所有工作线程

    如何在不停止主线程的情况下停止Android应用程序中所有正在运行的工作线程 有这方面的例子吗 其实线程有方法stop 因此您可以检查所有工作线程并在每个线程上调用此方法 问题是 从哪里获取工作线程列表 更好的解决方案是将此列表存储在应用程
  • 在 C++ 中将双精度数转换为字符串

    我在尝试将双精度字符串转换为 C 字符串时遇到一些问题 这是我的代码 std string doubleToString double val std ostringstream out out lt lt val return out s
  • 如何在 Linux 服务器中安排 R 脚本 Cronjob? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 这个问题似乎不是关于主要由程序员使用的特定编程问题 软件算法或软件工具 如果您认为该问题与主题相关另一个 Stack Exchange 站点 您可以发表评论来解释问题可以在哪里得到解
  • 在发布模式下在 .NET 中进行调试

    前段时间我读过一篇关于 CLR 的文章 其中作者表明 如果项目以 DEBUG 模式编译 则在每个操作符之前都会出现一个 NOP 命令 从而允许调试代码 然而 今天我发现我们也可以在发布模式下进行调试 请帮助理解其中的区别 调试 net 代码
  • 使用 TCPIP 的多节点 docker 环境中的 Hazelcast

    我目前正在努力解决以下问题 我有一个 Java EE 应用程序 它应该能够在集群中运行 它确实如此 对于节点之间的数据交换 我使用 Hazelcast 3 3 3 由于我们的客户害怕 UDP 我们使用 TCP 所以我为每个节点配置 3 个
  • JDK 11.javax.net.ssl.SSLPeerUnverifiedException:对等点未经过身份验证

    我正在将我们的平台迁移到 JDK 11 其中一项服务在调用 graph facebook com API 时出现以下问题 org springframework web client ResourceAccessException GET
  • Material UI 重写样式并增加了特异性

    如何覆盖具有高特异性的类的规则 例如 MuiAccordionSummary content Mui expanded类中的手风琴摘要 const useStyles makeStyles gt expanded marginBottom
  • Mvvm交叉对话框

    我目前正在研究所有可能的解决方案 以便能够在用户需要做出决定时通知用户 即弹出对话框 这是 MVVM 模式的常见问题 我正在尝试为 MvvmCross 框架解决它 可能的解决方案可能是 自定义 MvxPresenter 以能够显示对话框 但
  • 使用 Qml/Qt 进行 https POST / GET

    最近我正在使用 Qt Qml 开发诺基亚手机 我必须向给定的 HTTPS Url 发出 POST 请求 我正在使用 QML 并尝试用 Javascript 来完成它 但没有任何运气 有人对此有什么想法吗 可以在 QML 中使用 Javasc
  • NSUserDefaults。 setValue 有效,setBool 不行

    我尝试在 NSUserDefaults 中存储一些设置 但该应用程序似乎不会存储 setBool 值 这有效 NSUserDefaults standardUserDefaults setValue hello forKey test NS
  • 单击 listViewItem 时显示带有单选按钮的警报对话框

    我有一个 listView 其中有 2 个项目 这两个项目是 秒 和 分钟 当我按 秒 时 我希望打开一个警报对话框并显示 5 10 15 秒 当我按分钟时也一样 像这样的东西 但我在实施它时遇到了困难 因为我不太了解它是如何工作的 这是我
  • 是什么让 pylint 认为我的类是抽象的?

    据我了解 Python 2 5 2 并不真正支持抽象类 为什么 pylint 抱怨这个类是 抽象类而不是引用 它会为任何具有以下功能的类执行此操作吗NotImplementedError thrown 我将每个类都放在自己的文件中 所以如果
  • 在 C++ (MFC) 应用程序和 C# 之间传递数据

    我们有一个整体式 MFC GUI 应用程序 它在 C 中的生命周期已接近尾声 我们计划用 C 构建新功能并在每个应用程序之间传递数据 问题是 在 C 和 C 之间传递数据的最佳方法是什么 Notes 两端都将有一个 GUI 前端 并且可能只
  • 将 JPanel 放置在 JFrame 中的特定位置

    我需要帮助将 JPanel 定位到 Jframe 中的特定位置 我在扩展 JFrame 的类中有一个 JPanel 我需要将此 JPanel 放在特定的 x y 位置 是这样的 public class Frame extends JFra
  • 全屏时 ALV 网格工具栏丢失

    我创建了一个简单的 ALV 网格并用数据填充了网格 现在网格显示在选择屏幕之后 我没有使用自定义容器并全屏显示网格 ALV网格对象是否有一个属性可以启用带有按钮的工具栏filter sort等 通常位于网格顶部 到目前为止 这就是我所拥有的
  • Android 4.1+ 中区域设置更改后 Activity 闪烁

    大约一年前 我已经实现了自定义区域设置选择 但在 4 1 版本发布后 用户开始抱怨活动不断闪烁 这是我正在使用的代码 从不同的答案编译 public final class TestApplication extends Applicati
  • Facebook Javascript SDK open-graph:为自定义故事添加自定义对象时出错

    我创建了一个名为 意见 的自定义对象来围绕它构建自定义故事 我正在尝试使用 javascript sdk 从我的网站添加一些应用程序拥有的对象 facebook 给我的示例代码是 FB api me objects namespace op
  • 禁用特定包的日志记录

    我正在我的应用程序中实现 python 日志记录 并且我希望能够利用 默认 根设置 我想使用根设置 因为我不想在配置文件中为每个模块定义一个记录器 当我打开根记录器的调试级别日志记录时 我遇到了 QPID Python 客户端 API 的问