我试图建立一个记录器将登录到控制台(我想这是因为我使用的是Papertrails的Heroku(Heroku的日志记录插件)和东西写到控制台将在Papertrails显示,使其过滤和一切好Papertrail功能)Django的登录到控制台
在设置我第一次尝试以下操作:
LOGGING = {
'handlers' = {
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': 'mysite.log',
'formatter': 'verbose'
},
'console':{
'level': 'DEBUG',
'class': 'logging.StreamHandler',
},
},
(...)
'loggers'={
(...)
'page_processors': {
'handlers': ['console','file'],
'level': 'DEBUG',
}
}
(...)
}
为每Django的登录页面(对于那些谁不使用夹层,page_processors是当你打开一个页面时,Mezzanine会运行什么;你可以认为它们就像Django的视图一样,但它们只能执行上下文,而不是渲染)。
在page_processors.py我
import logging
logger = logging.getLogger(__name__)
@process_for(MyPage):
def myfunc(request, Page):
logger.info('page_processor logging test')
print 'my page_processor print'
(...)
当我刷新页面我没有看到记录器,但我看到了打印和日志文件:
[02/Mar/2014 23:07:10] INFO [myApp.page_processors:13] page_progessor logging test
等我知道这个逻辑在起作用。在google搜索了一下之后,我发现了this和this page恰恰解决了这个问题。他说默认logging.StreamHandler记录到STDERR。如果我们想登录到STDOUT你应该关键字参数“流”添加到logging.StreamHandler结构,因此配置处理器为这样:
'handlers':{
(...)
'console':{
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'stream': sys.stdout
},
}
原来,这仍然无法正常工作,而且我不没有任何错误或任何错误,我仍然可以看到打印和文件日志。只是不是控制台记录器。
发生了什么事?
编辑: 我试过this,没有什么区别。
感谢。 __ stdout __不起作用。是的,我可以相信这个代码没什么问题(毕竟我是从其他地方拿来的),但奇怪的是,即使是登录文件也可以。还有其他建议吗? – oneloop