python - 使用 twistd 和 python 日志记录到文件

标签 python ubuntu logging twisted

当我像这样运行扭曲的应用程序时:

twistd --pidfile ./twistd.pid -l $HOME/logs/my_application.log -oy service.tac

我发现它不会记录通过 python logging 发送的任何内容系统。我注意到扭曲中有一个“PythonLoggingObserver”,但它将扭曲日志重定向到日志记录模块。

我想弄清楚如何让所有日志(不管日志模块如何)转到在 twistd 上用“-l”命令指定的日志文件。我怀疑我的日志正在写入守护进程的标准输出。

以下是我如何在 .tac 文件中初始化 python 日志记录:

import logging

LOG_LEVEL = logging.DEBUG

logger = logging.getLogger(module_name)
logger.setLevel(LOG_LEVEL)
logging.basicConfig(level=LOG_LEVEL)

最佳答案

使用 twisted.python.log.logfile 添加流处理程序。例如:

>>> from sys import stdout
>>> from logging import StreamHandler, getLogger
>>> from twisted.python.log import startLogging, logfile
>>> observer = startLogging(stdout, setStdout=False)
2015-05-02 06:34:39-0400 [-] Log opened.
>>> getLogger().addHandler(StreamHandler(stream=logfile))
>>> getLogger().log(100, "Hello")
2015-05-02 06:36:26-0400 [-] Hello
>>> 

关于python - 使用 twistd 和 python 日志记录到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29996482/

相关文章:

python - TF-IDF 如何仅获取单词列表

python - choice_set django 教程第一部分

python - 在 Django Admin 中限制/过滤外键选择

ubuntu - 如何在ubuntu上使用其环境登录另一个用户

python - 将 a/b 字符串转换为在 pandas 中 float

javac 在 ubuntu 终端中不起作用

由于 PHP 版本,Apache 中的 PHPMyAdmin 500 内部服务器错误

spring - 作为 Linux 服务运行的 Spring Boot 的轮换日志

java - neo4j 记录器不会归档

logging - 在 Java 中启用 kerberos 的详细日志记录