如何使用扭曲的日志系统来记录我的数据?

时间:2013-06-14 10:38:46

标签: python logging twisted

我对扭曲记录系统的主要功能感兴趣,并且我使用它来记录我需要的一些数据,更多的是记录扭曲应用程序的真实状态。顺便说一句,这是非常嘈杂的,我已经引起了这个Twisted: disable logging of Twisted-framework classes,但我不确定是否明白这一点。使用.noise也不适合我的需要。

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

(因此我可以拥有时间功能,旋转等等我自己的数据,因为我已经花了一些努力,在这里许多人的友好帮助,以适应扭曲记录的过程我的需要)。

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

或者你的主要建议是我应该明确地打开一个文件,打印我的时间格式和数据线。并在这个文件上实现我自己的旋转,而不是根据我的需要转移/劫持扭曲的日志系统?

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

(我很擅长扭曲,从错误的方式学习,从最后开始深入到我的需求,而不是在图书馆的基础上,所以我想念很多东西。请为此道歉。)

最好的问候。

1 个答案:

答案 0 :(得分: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)