2

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

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

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

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

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

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

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

此致。

4

1 回答 1

2

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

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)
于 2013-06-14T12:20:40.953 回答