Python logger debuging:无法找到记录器“__main__”的处理程序

时间:2015-02-12 05:54:24

标签: python logging heroku

我有一个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')])]) ,

以下是我的应用程序中包含“logger”模块的所有代码。我尝试将代码注释掉来识别问题。该应用程序是用于记录电话会议的,但是当我拨打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')

1 个答案:

答案 0 :(得分:1)

你在使用烧瓶吗?

如果是这样,请尝试从应用程序调用logger:

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

相关问题