Python Logging in Bottle无法在路由中工作

时间:2016-07-21 16:17:13

标签: python logging routing bottle

我正在尝试使用Python日志库来记录我的Bottle应用程序中的消息。日志记录在路由之外按预期工作,但我的应用程序未记录路由中的任何内容。知道什么是错的吗?

import logging

#logging
logger = logging.getLogger('myApp')
logger.setLevel(logging.INFO)
fh = logging.FileHandler('log.log')
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
logger.addHandler(fh) 

logger.info("Starting my application.") #this logs as expected

@route('/myRoute', method='POST')
def returnWord():
  userWord = (request.forms.get('submittedWord')).lower()
  # this doesn't log anything
  logger.info("testing logging inside route. word: %s" % (userWord))
  return template('<b>Hello {{name}}</b>!', name=userWord)

if __name__ == "__main__":
  daemon_run(host='0.0.0.0', port=8080)

1 个答案:

答案 0 :(得分:0)

你的例子适合我。 您可能在到达

之前遇到错误
logger.info("testing logging inside route. word: %s" % (userWord))

请注意,如果您的POST顺利,您应该在控制台上看到以下行

  

127.0.0.1 - - [17 / Aug / 2016 19:20:15]“POST / myRoute HTTP / 1.1”200 20

为了确保你拥有正确的轨道,请添加一个像这样的简单功能

@route('/testy', method='GET')
def testy():
    logger.info("testy is online :)")
    return "COOL"

将您的网络浏览器定向到localhost:8080 / testy并查看COOL消息。 现在,您还将在文件中看到日志消息。