python - Tornado 日志配置 - 为什么我会收到重复的行?

标签 python logging tornado

我使用以下日志记录配置:

{
    "version": 1,
    "disable_existing_loggers": false,
    "formatters": {
        "simple": {
            "format": "%(asctime)s %(name)-15s %(levelname)-8s %(processName)-10s %(message)s"
        }
    },

    "handlers": {
        "console": {
            "class": "logging.StreamHandler",
            "level": "DEBUG",
            "formatter": "simple",
            "stream": "ext://sys.stdout"
        }
    },

    "loggers": {
        "transmit": {
            "level":"DEBUG",
            "propagate": "no",
            "handlers": ["console"]
        },
    },

    "root": {
        "level": "INFO",
        "handlers": ["console"]
    }
}

在我的主要部分,我使用以下内容来设置日志记录:

with open('logging.conf', 'rt') as f:
    config = json.load(f) 
logging.config.dictConfig(config)

每个模块都通过以下方式请求记录器:

logger = logging.getLogger("transmit.%s" % __name__)

出于某种原因,我看到来 self 的模块和 Tornado 模块的日志,打印了两次:

2014-01-09 14:53:07,111 transmit.__main__ DEBUG    MainProcess Current working dir : /Users/dimap/workspace/PycharmProjects/Transmit
2014-01-09 14:53:07,111 transmit.__main__ DEBUG    MainProcess Current working dir : /Users/dimap/workspace/PycharmProjects/Transmit
2014-01-09 14:53:12,619 transmit.__main__ INFO     MainProcess Get com
2014-01-09 14:53:12,619 transmit.__main__ INFO     MainProcess Get com
2014-01-09 14:53:12,620 tornado.access  INFO     MainProcess 200 GET /com?op=verify (127.0.0.1) 1.65ms
2014-01-09 14:53:12,620 tornado.access  INFO     MainProcess 200 GET /com?op=verify (127.0.0.1) 1.65ms

有什么想法我做错了什么吗? 谢谢。

最佳答案

找到了答案:)我的配置有错误: 它应该是 "propagate": false, 而不是 "propagate": "no",

关于python - Tornado 日志配置 - 为什么我会收到重复的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21021043/

相关文章:

python - 如何干净地退出多处理脚本?

python - 在 Python 中读取和运行数学表达式

python - 为什么我的 Python 递归函数返回 "none"而不是 "True"?

java - 记录到文件并为每一行添加前缀的自定义打印流或打印编写器

unix - 如何在没有回车的情况下显示日志文件的 rsync 进度?

聊天应用程序 : pubsubhubbub vs xmpp

python - 无法将元组用作字典键?

python - 如何在 Python 中为导入的模块定义不同的记录器?

wsgi - gevent和 Tornado 的区别

python - 使用 Python Tornado 处理多个传入请求