Python记录器调试:没有处理程序可以找到记录器“__main__”

问题描述:

我有一个plivo电话会议应用程序。我能够在本地运行的应用程序,但是当我在Heroku上运行我收到以下错误,它可以杀死我的应用程序: 2015-02-12T05:36:08.173658+00:00 app[web.1]: No handlers could be found for logger "__main__" 2015-02-12T05:36:08.173695+00:00 app[web.1]: Pilvo error: CombinedMultiDict([ImmutableMultiDict([]), ImmutableMultiDict([('From', u'zzzphone'), ('Direction', u'inbound'), ('BillRate', u'0.00850'), ('CallerName', u'+yyyphone'), ('To', u'xxxphone'), ('CallStatus', u'ringing'), ('CallUUID', u'0aaf7442-b279-11e4-af9d-ff55a7d29b8a'), ('Event', u'StartApp')])]) , Python记录器调试:没有处理程序可以找到记录器“__main__”

这是所有从我的应用程序,它具有“记录器”模块的代码。我尝试对代码进行评论以确定问题。该应用程序支持录制电话会议,但是当我拨打python应用程序时,我甚至不会进入主菜单输入数字,然后进入会议实例,因此错误必须是固有的。

logging.config.dictConfig({ 
    'version': 1, 
    'disable_existing_loggers': False, 
    'formatters': { 
     'recording': { 
      'format': '[%(asctime)s]: %(message)s', 
     }, 
     'verbose': { 
      'format': '%(levelname)s::%(asctime)s::%(module)s -- %(message)s', 
     } 
    }, 
    'handlers': { 
     'console': { 
      'level': 'DEBUG', 
      'class': 'logging.StreamHandler', 
      'stream': sys.stdout, 
      'formatter': 'verbose' 
     }, 
     'recordings_file': { 
      'level': 'INFO', 
      'filename': 'recordings.log', 
      'class': 'logging.FileHandler', 
      'formatter': 'recording' 
     }, 
     'logfile': { 
      'level': 'DEBUG', 
      'filename': 'debug.log', 
      'class': 'logging.FileHandler', 
      'formatter': 'verbose' 
     } 
    }, 

    'loggers': { 
     'recordings': { 
      'handlers': ['recordings_file'], 
      'level': 'INFO', 
      'propagate': True, 
     }, 
     'root': { 
      'handlers': ['logfile', 'console'], 
      'level': 'INFO', 
      'propagate': True 
     }, 
    } 
}) 
""" 

logger = logging.getLogger(__name__) 
recordings = logging.getLogger('recordings') 

@app.route('/response/main_menu', methods=['GET', 'POST']) 
def main_menu(): 
    logger.debug('New call') 
    logger.debug('--') 
    response = plivoxml.Response() 

这里还有:

app.route('/response/error_handler/', methods=['POST']) 
def error_handler(): 
    logger.error('Pilvo error: %s , %s' % (request.values, request.data)) 
    print 'Pilvo error: %s , %s' % (request.values, request.data) 

    response = plivoxml.Response() 
    response.addRedirect(url_for('ivr', _external=True)) 

    return Response(str(response), mimetype='text/xml') 

您使用的瓶?

如果是这样,尝试从应用程序中调用记录:

app.logger.error('Pilvo error...')

+0

这并删除我上面所描述的错误。现在我收到一个plivo错误'2015-02-12T18:58:35.078126 + 00:00 app [web.1]:Pilvo error:CombinedMultiDict([ImmutableMultiDict([]),ImmutableMultiDict([('From',u'zzzphone '),('Event',u'StartApp'),('Direction',u'inbound'),('CallUUID',u'2476874c-b2e9-11e4-b9c3-2b70f7e6a9a7'),('BillRate',u ''0.00850'),('CallerName',u'+ xxxxphone'),('CallStatus',u'ringing'),('To',u'yyyyphone')])]),'......关于一个immutableMultiDict ? – phillipsK 2015-02-12 19:01:26