我正在try 设置一个日志(log)记录器,它将登录到控制台(我想要这个,因为我正在使用Heroku和Papertrail(Heroku的日志(log)插件),写入控制台的内容将显示在Papertrail中,使其可过滤,并具有所有良好的Papertrail功能.)
在设置中,我首先try 了以下设置:
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的日志(log)记录页面(对于那些不使用Mezzanine的人,每当您打开页面时,Mezzanine都会运行Page_Processor;您可以认为它们类似于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'
(...)
当我刷新页面时,我看不到记录器,但我看到打印和文件日志(log):
[02/Mar/2014 23:07:10] INFO [myApp.page_processors:13] page_progessor logging test
所以我知道逻辑在起作用.在谷歌搜索了一下之后,我发现this和this page正好解决了这个问题.他说默认情况下是日志(log)记录.StreamHandler将日志(log)记录到STDERR.如果我们想登录到STDOUT,你应该在日志(log)中添加关键字参数"stream".StreamHandler构造,并将处理程序配置为:
'handlers':{
(...)
'console':{
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'stream': sys.stdout
},
}
结果发现这仍然不起作用,我没有收到任何错误或任何信息,而且我仍然可以看到打印和文件日志(log).只是不是控制台记录器.
到底怎么回事?
编辑: 我试了this次,没什么不同.