Twisted:禁用 Twisted 框架类的日志记录

2023-11-30

我的基于 Twisted 的客户端循环发送 UDP 数据包。 因此我使用 DatagramProtocol 类。 这是来源:

#!/usr/bin/python
# -*- coding: utf-8 -*-
from twisted.application.service import Service
from twisted.internet import reactor
from twisted.internet.task import LoopingCall
from twisted.internet.protocol import DatagramProtocol
from twisted.python import log
import logging

class HeartbeatClient(Service):
    def __init__(self, host, port, data, beat_period):
        self.ip = host
        self.port = int(port)
        self.data = data
        self.beat = int(beat_period)

    def startService(self):
        self._call = LoopingCall(self._heartbeat)
        self._call.start(self.beat)

    def stopService(self):
        self._call.stop()

    def _heartbeat(self):
        protocol = DatagramProtocol()
        protocol.noisy = False
        port = reactor.listenUDP(0, protocol)
        port.write(self.data, (self.ip, self.port))
        port.stopListening()

现在,当我使用 Twisted 运行此客户端时,我会永久从 Twisted 类(即数据报协议类)获取日志消息:

2011-09-11 18:39:25+0200 [-] (Port 55681 Closed)
2011-09-11 18:39:30+0200 [-] twisted.internet.protocol.DatagramProtocol starting on 44903
2011-09-11 18:39:30+0200 [-] (Port 44903 Closed)
2011-09-11 18:39:35+0200 [-] twisted.internet.protocol.DatagramProtocol starting on 50044
2011-09-11 18:39:35+0200 [-] (Port 50044 Closed)
2011-09-11 18:39:40+0200 [-] twisted.internet.protocol.DatagramProtocol starting on 37450

由于这些日志消息正在污染我的“自己的”日志,我想知道是否可以禁用这些日志消息。 正如你所看到的,我已经通过调用减少了日志量protocol.noisy = False,但我仍然收到其他日志消息。还有命令g = protocol.ClientFactory().noisy = False没有帮助。

是否可以以通用方式禁用所有 Twisted 内部类的日志记录 - 对于所有模块?也许通过使用一些 Twisted-logging 配置?


Twisted 的日志记录非常幼稚。然而,没有理由需要这样,因为twisted.python.log非常有特色,并且能够进行您(和其他人)感兴趣的选择性报告。

日志事件只是任意键和值的字典。默认观察者知道带有 a 的字典'message'钥匙。也许正因为如此,Twisted 本身发出的大多数日志消息除了提供与此键关联的人类可读的字符串之外不会尝试做任何事情(而且,许多发出的消息是在current扭曲的日志系统,以及作为消费者的更旧、更原始的系统)。

不久前,这个问题困扰了一个被提示提交文件的人a ticket并开始制定一项决议问题的UDP部分尤其。该问题已基本解决,但仍有一些事情需要完成。

尝试的解决方案是记录一条结构化消息,该消息传达相同的信息,但没有消息,因此默认观察者不会记录。这可以避免消息默认出现在日志中,但允许对这些事件特别感兴趣的观察者观察它们并根据需要进行处理。

这张票已经有一段时间没有动过了。对于某人来说,拿起补丁并完成最后一步可能很容易。

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

Twisted:禁用 Twisted 框架类的日志记录 的相关文章

  • python - 如何删除每行中的重复列表(pandas)?

    我的每一行中都包含一个列表 我想通过保留分数中的最高值来删除重复元素 这是我的数据框 df1 中的数据 pair score 0 A A 1 0000 1 A F 0 9990 2 A G 0 9985 3 A G 0 9975 4 A H
  • celery任务eta已关闭,使用rabbitmq

    我使用教程中的默认设置和在 ubuntu 上运行的rabbitmq 使 Celery 任务正常进行 当我毫不延迟地安排任务时 一切都很好 但是当我给他们一个预计时间时 他们会被安排在未来 就好像我的时钟在某个地方关闭了一样 下面是一些请求任
  • 有什么好的适用于 Google App Engine 应用程序的 AJAX 框架吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试在我的 Google App Engine 应用程序中实现 AJAX 因此我正在寻找一个好的
  • 在 python 中发送标头[重复]

    这个问题在这里已经有答案了 我有以下 python 脚本 我想发送 假 标头信息 以便我的应用程序就像 Firefox 一样运行 我怎么能这么做呢 import urllib urllib2 cookielib username passw
  • NumPy 数组与 SQLite

    我在 Python 中见过的最常见的 SQLite 接口是sqlite3 但是有什么东西可以很好地与 NumPy 数组或 rearray 配合使用吗 我的意思是 它可以识别数据类型 不需要逐行插入 并提取到 NumPy rec 数组中 有点
  • Python Apache Beam 端输入断言错误

    我对 Apache Beam Cloud Dataflow 还很陌生 所以如果我的理解不正确 我深表歉意 我正在尝试通过管道读取大约 30 000 行长的数据文件 我的简单管道首先从 GCS 打开 csv 从数据中提取标题 通过 ParDo
  • cxfreeze virtualenv 中缺少 distutils 模块

    从 python3 2 项目运行 cxfreeze 二进制文件时 我收到以下运行时错误 project dist project distutils init py 13 UserWarning The virtualenv distuti
  • 如何在Python中手动对数字列表进行排序?

    规格 Ubuntu 13 04 Python 3 3 1 背景 Python的初学者 遇到了这个 手动排序 问题 我被要求做的事情 让用户输入 3 个数值并将它们存储在 3 个不同的变量中 不使用列表或排序算法 手动将这 3 个数字从小到大
  • 尝试校准keras模型

    我正在尝试通过 Sklearn 实现来校准我的 CNN 模型CalibratedClassifierCV 尝试将其包装为KerasClassifier并覆盖预测功能但没有成功 有人可以说我做错了什么吗 这是模型代码 def create m
  • Python FTP下载550错误

    我编写了一个 ftp 爬虫来下载特定文件 它会一直工作 直到找到要下载的特定文件 然后抛出此错误 ftplib error perm 550 该文件存在于我的下载文件夹中 但文件大小为 0 kb 我需要转换某些内容才能下载吗 我可以访问 f
  • 为什么 pip 已经是最新的了却要求我升级?

    我全新安装了 python 3 7 1 64 位 并使用最新的 pyCharm 作为我的 IDE 我在这台机器上没有安装其他 python 我去安装 numpy 并收到以下消息 venv C Users John PycharmProjec
  • 机器学习的周期性数据(例如度角 -> 179 与 -179 相差 2)

    我使用 Python 进行核密度估计 并使用高斯混合模型对多维数据样本的可能性进行排名 每一条数据都是一个角度 我不确定如何处理机器学习的角度数据的周期性 首先 我通过添加 360 来删除所有负角 因此所有负角都变成了正角 179 变成了
  • 使用具有可变数量索引的 numpy mggrid

    如何将 numpy mgrid 与可变数量的索引一起使用 我在 github 上找不到任何人将其与硬编码值以外的任何内容一起使用的示例 import numpy as np np mgrid 1 10 1 10 this works fin
  • Python GTK3 Treeview 向上或向下移动选择

    如何在树视图中向上或向下移动所选内容 我的想法是 我可以使用向上和向下按钮将选择向上移动一行或向下移动一行 我的 Treeview 使用 ListStore 不确定这是否重要 首先 我将使用我熟悉的 C 代码 如果您在将其翻译为 Pytho
  • 列表中的特定范围(python)

    我有一个从文本字符串中提取的整数列表 因此当我打印该列表 我称之为test I get 135 2256 1984 3985 1991 1023 1999 我想打印或制作一个仅包含特定范围内的数字的新列表 例如1000 2000之间 我尝试
  • NodeJS 中的缩进多行日志记录

    我要打印JSON stringify d 反对控制台 将上下文作为 Mocha 测试套件输出的一部分 当测试缩进时 我希望对象日志行向右缩进足够远 例如 3 4 个制表符空格 以便它们可以识别地位于右侧describe group 我怎样才
  • 解析整数集的字符串并列出间隔

    I have 2 5 7 9 12 string 我想从中获取 2 5 7 8 9 12 列表 python中有没有内置的函数 Thanks UPD 我想 直接的答案是No 不管怎样 谢谢你的 片段 使用一个 建议者斯文 马尔纳克 s 2
  • 在 4K 屏幕上使用 Matplotlib 和 TKAgg 或 Qt5Agg 后端

    我在 Ubuntu 16 04 上使用 Matplotlib 2 0 和 Python 3 6 来创建数据图 电脑显示器的分辨率为 4k 分辨率为 3840x2160 绘图数字看起来非常小 字体也很小 我已经尝试过TKAgg and Qt5
  • 带 Qt 的菜单栏/系统托盘应用程序

    我是 Qt PyQt 的新手 我正在尝试制作一个应用程序 其功能将从菜单栏 系统托盘执行 这里展示了一个完美的例子 我找不到关于如何做到这一点的好资源 有人可以建议吗 Thanks 我认为您正在寻找与QMenu and QMainWindo
  • 如何仅读取 CSV 文件每行的第一列 [重复]

    这个问题在这里已经有答案了 如何在Python中读取CSV文件每行的第一列 我的数据是这样的 1 abc 2 bcd 3 cde 我只需要循环第一列的值 另外 当我在 calc 中打开 csv 文件时 每行中的数据都在同一个单元格中 这正常

随机推荐

  • 在 Playwright for Python 中,如何从框架 (iframe) 中检索元素的句柄?

    我已经成功地在 python 中使用 Playwright 从页面中获取元素 我现在遇到了从嵌入到文档中的文档中获取元素的挑战iframe 举个例子 我用过w3schools 页面解释了
  • 每行具有不同列数的 JTable

    我怎样才能让 JTable 只用一列来布局一些行 例如 A1 Section Title Row With long Text A2 B2 C2 D2 A3 B3 C3 D3 A4 B4 C4 D4 A5 Section Title Row
  • C 和汇编程序实际上编译成什么? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 所以我发现 C 程序实际上不会编译为普通的 二进制 我可能在这里犯了一些错误 在这种情况下我很抱歉 D 而是编译为一系列的东西 符号表 与操作系统相关的东西 但是 汇编程序是否
  • 更新项目时,Azure Redis 缓存中是否有任何锁定机制?

    我正在使用 Azure 搜索开发 Azure Redis 缓存 但找不到任何有关 Redis 缓存并发性的明确描述 情况如下 在覆盖现有缓存项时 是否可以同时读取该项 如果是的话 Redis 缓存如何管理这个 它会锁定该项目直到它可用 还是
  • Python - selenium webdriver - 无法切换到注册弹出窗口

    我是 python 2 7 和 selenium webdriver 的新手 我正在尝试注册http way2automation com way2auto jquery index php 到目前为止 我一直停留在切换到注册弹出窗口上 我
  • Javafx:更改 setOnAction 中的场景

    我正在构建一个具有多个场景的 JavaFX 应用程序 在 setOnAction 事件中更改场景时 我遇到变量范围问题 这是我的代码 Stage myStage public Scene logInScene all the buttons
  • 如何在 Picturebox 上获得滚动条

    I have PictureBox picture I use picture Size bmp Size picture Image bmp 假设有两个整数maxWidth and maxHeigth 我想添加垂直 水平滚动条pictur
  • 我们可以在 Scala 中进行条件导入吗?

    假设我有以下代码 package my class Foo class Bar extends Foo object Chooser val isFoo true 我导入Foo as import my Foo gt MyClass 我希望
  • UITableView 单元格的动态高度问题 (Swift)

    可变长度的文本数据被注入到表格视图单元格标签中 为了使每个单元格的高度大小合适 我已经实现了viewDidLoad self tableView estimatedRowHeight 88 0 self tableView rowHeigh
  • 通过两个属性就地对列表进行排序

    我有一个具有两个属性的类 名称和位置 我想按位置对此类的列表进行排序 并且具有相同位置的元素应按名称排序 我正在处理静态列表 所以我想就地工作 到目前为止 我设法按一个属性对列表进行排序 list Sort x y gt x Positio
  • 属性“fixed-rate”不允许出现在元素“int:poller”中

    我无法在 poller 标签下添加属性 fixed rate 给出 属性 fixed rate 不允许出现在元素 int poller 中 请参考下面的 xml 文件
  • 在实模式下跳转到远地址

    我遇到一种情况 我必须在实模式下跳转到远地址 我的段值在fs寄存器和偏移量gs寄存器 在跳转过程中我必须保持准确的寄存器内容 我想出了一个想法如下 mov bp fs shl ebp 16 mov bp gs jmp ebp 假设bp fs
  • 在 Google 地图中查找多个位置的中心

    我刚刚复制了这个代码question并应用了我的纬度和经度 然而 纬度和经度将是动态的 并且center地图的内容将根据地点的纬度和经度而变化 以下是另一个问题的代码
  • 如何将 Jersey REST API 转换为可执行 JAR?

    我正在使用 Jersey Maven 并且可以使用 Jetty Tomcat 或 J2EE Preview 可以嵌入吗 将 REST API 移植为独立 可执行 JAR 的最简单方法是什么 没有 Spring Boot 可以吗 按照以下步骤
  • 安装和卸载硬盘

    如何在 Java 编程语言中挂载和卸载硬盘驱动器 与平台无关 因此不使用运行时执行硬编码命令 答案是 是和否 您无法在 java 中挂载或卸载设备 因为每个操作系统都有自己的方法来执行此操作 但是 您可以提供使用适配器模式作为本机接口的ja
  • 为什么around_filter或after_filter中的redirect_to不起作用?

    如何使redirect to在这些过滤器中起作用 我正在努力改变 def start redirect to index end def end redirect to index end to around filter around d
  • 增强的 for 循环不适用于循环体内的 Scanner

    为什么认为行不通 它只打印零 然而 当我使用带有索引值 i 的普通 for 循环并在循环体内使用 a i 时 它会起作用 问题不在于打印循环 因为它不打印值 即使使用正常的 for 循环也是如此 import java util Scann
  • ASM 库计算出错误的堆栈大小

    我使用 ASM 库生成字节码 方法的 最大堆栈大小 将自动计算 在运行时 我发现这个值 最大堆栈大小 不正确 我的源代码是 ClassWriter cw new ClassWriter ClassWriter COMPUTE MAXS Me
  • 将枚举映射到类型

    我正在尝试使用映射类型在枚举上 export enum CurrencyType USD USD AUD AUD GBP GBP CAD CAD 实现这种类型 type Rates AUD number CAD number GBP num
  • Twisted:禁用 Twisted 框架类的日志记录

    我的基于 Twisted 的客户端循环发送 UDP 数据包 因此我使用 DatagramProtocol 类 这是来源 usr bin python coding utf 8 from twisted application service