图书馆提供的日志记录器为何不记录Flask日志?

2024-06-17 08:36:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码:

import logging
import pprint

from flask import Flask, request, url_for
from flask.ext.werobot import WeRoBot

app = Flask(__name__)
app.debug = True

robot = WeRoBot(token='banana', enable_session=False)
logger = logging.getLogger("WeRoBot")
logger.setLevel(logging.ERROR)

@robot.handler
def reply(message):
  logger.error("TESTING")
  return "id:%s\ntarget:%s\nsource:%s\ncontent:%s" % (
    message.id, message.target, message.source, message.content)

robot.init_app(app, endpoint='werobot', rule='/wechat')

@app.route('/')
def index():
  return 'WeRoBot will handle at %s' % url_for('werobot')


if __name__ == '__main__':
  app.run(host="0.0.0.0", port=80)
  app.logger.addHandler(logger)
  app.logger.setLevel(logging.DEBUG)

我正在尝试使用我的库(https://github.com/binss/werobot-bin/blob/master/logger.py)提供的这个记录器

现在我在我的酒瓶控制台上看到的是:

^{pr2}$

你知道为什么记录器不输出任何东西吗?在

编辑:

当我在代码中添加logger.error时,我看到的是:

No handlers could be found for logger "WeRoBot"
103.7.30.69 - - [22/May/2016 22:33:48] "POST /wechat?signature=690728c359997933b6fe879a29b3e1a3f4bbd3a5&timestamp=1463956428&nonce=1767972375 HTTP/1.0" 200 -

Tags: 代码namefromimportappurlflaskmessage
1条回答
网友
1楼 · 发布于 2024-06-17 08:36:05

你没有注册你的日志。您需要实例化记录器,然后将其注册为处理程序,如下所示:

robot = WeReBot(...)  # make my handler
logger = logging.getLogger()  # get a reference to the root logger
logger.addHandler(robot)  # register my handler

下面是Python文档的食谱,其中包含更多详细信息:https://docs.python.org/3/howto/logging.html#configuring-logging

相关问题 更多 >