【问题标题】:how to use the twistd log system for logging my data?如何使用 twistd 日志系统记录我的数据?
【发布时间】:2013-06-10 23:46:31
【问题描述】:

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

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

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

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

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

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

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

最好的问候。

【问题讨论】:

    标签: python logging twisted


    【解决方案1】:

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

    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)
    

    【讨论】:

      猜你喜欢
      • 2015-07-11
      • 1970-01-01
      • 2014-10-24
      • 2013-04-13
      • 2016-02-03
      • 1970-01-01
      • 2011-10-26
      • 1970-01-01
      • 2011-05-10
      相关资源
      最近更新 更多