python - 如何使用twistd日志系统来记录我的数据?

标签 python logging twisted

我对twistd日志系统的主要功能很感兴趣,我用它来记录我需要的一些数据,不仅仅是记录twist应用程序的真实状态。顺便说一句,它很吵,我读过这篇文章Twisted: disable logging of Twisted-framework classes但我不确定我明白了。另外使用 .noise 不符合我的需要。

我想知道是否可以并且容易地在两个日志记录系统中清晰地分开,一方面具有扭曲矩阵应用程序所需的日志,另一方面仅包含包含我的重要数据的日志?

(这样我就可以在我自己的数据上拥有时间特征、旋转等,因为我已经在这里的许多人的善意帮助下付出了一些努力,以使扭曲日志记录的过程适应我的需要)。

有人可以给我一些关于如何实现这一目标的提示吗?

或者您的主要建议可能是我应该明确打开一个文件,打印其中的时间格式和数据行。并在该文件上实现我自己的轮换,而不是根据我的需要拒绝/劫持扭曲的日志系统?

我也考虑过使用log.msg(mydata, system = "myownflag")然后使用 grep myownflag | my log > only-my-data但可以有更好的想法......

(我是扭曲的新手,从最后开始以错误的方式学习它,并且对我的需求深入得太快,而不是在图书馆的基础上,所以我错过了很多东西。请为此道歉。)

致以诚挚的问候。

最佳答案

这是一个日志观察器包装器,可以过滤掉来自错误系统的事件:

from functools import wraps

def makeObserver(system, originalObserver):
    @wraps(originalObserver)
    def observe(event):
        if event.get("system", None) == system:
            originalObserver(event)

您可以通过包装任何现有的观察者并将其添加到日志系统来使用它:

from twisted.python.log import FileLogObserver, addObserver

fileObs = FileLogObserver(file("myownflag.log", "at"))
addObserver(makeObserver("myownflag", fileObs.emit)

关于python - 如何使用twistd日志系统来记录我的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17106585/

相关文章:

python - Tornado websocket 日志记录

c# - 在类库级别捕获 C# 错误

python - 有人可以解释这条扭曲的事吗?

python - 夹层的菜单页

python - 如何使用 execute() 第二个参数使用 psycopg2 创建数据库?

Python 3.7 日志记录问题未显示在输出中

iphone - 应用程序中的尴尬崩溃-附加了崩溃日志

python - TCP是否保证按顺序到达?

networking - Twisted 中 select/poll 与 epoll react 器的注意事项

python - Bottle 导致 python 程序崩溃?使用线程、队列和 fork 的简单实现