【问题标题】:How to open new log file for certain files in twisted如何以扭曲的方式打开某些文件的新日志文件
【发布时间】:2013-12-31 10:10:01
【问题描述】:

我正在运行一个包含许多不同服务的 python 扭曲应用程序,并且该应用程序的日志文件非常拥挤,包含各种输出。因此,为了更好地了解一项特定服务中发生了什么,我想将该服务的消息仅记录到不同的日志文件中。但我无法弄清楚如何做到这一点。

对于我的应用程序,我使用了一个 shell 脚本 run.sh,它调用了 twistd,如下所示:

twistd --logfile /var/log/whatever/path/mylogfile.log -y myapplication.py

文件 myapplication.py 启动应用程序中的所有服务,其中之一是我感兴趣的服务。该服务的所有代码都在文件 myservice.py 中。

那么,有没有办法为我的服务指定一个新的日志文件?当我启动服务时,我是否在 myapplication.py 中执行此操作,我是否使用 myservice.py 中的一些 python 代码执行此操作?

【问题讨论】:

    标签: python django logging twisted


    【解决方案1】:

    看到使用多个日志文件的系统,我强烈建议您不要朝这个方向发展。

    Guy 的回答听起来更正确。不过,要更详细地了解,请考虑使用 结构化日志格式,例如 structlog 提供的那种(包括 Twisted 集成)。

    一旦您的日志文件中的条目被结构化,您将有机会构建与它们一起使用的工具。 Guy 给出的示例使用grep 查找与您关注的服务相关的事件,这是朝这个方向迈出的一步。如果您朝着这个方向走得更远,并说每个日志事件将是(例如)一个 json 编码的对象,那么您可以解析每一行并将任意复杂的过滤逻辑应用于生成的 objects。 p>

    【讨论】:

      【解决方案2】:

      考虑以下两个选项:

      • 查看/拖尾日志时取决于日志行格式,请执行以下操作:

      tail -f mylogfile.log | grep <something unique like your service name?>

      【讨论】:

        【解决方案3】:

        看来您可以为每个服务创建t.p.l.LogPublisher 并附加一个FileLogObserver 以实际写入文件

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-04-11
          • 2011-11-03
          • 2010-10-11
          • 2012-11-24
          • 2015-09-08
          • 2023-03-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多