콘솔에 기록 할 로거를 설정하려고합니다. (Heroku의 로깅 애드온과 함께 Heroku를 사용하고 콘솔에 쓰여진 물건이 Papertrails에 표시되기 때문에 이걸 원합니다. . 메 자닌를 사용하지 않는 사람들을위한 장고의 로깅 페이지 당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',
}
}
(...)
}
(page_processors은 다음과 같습니다, 그것은 필터링 할 수있는 모든 좋은 Papertrail 기능 만들기) 설정에서
내가 먼저는 다음과 같은 노력했다 메 자닌은 페이지를 열 때마다 실행되며, 장고의 견해와 같다고 생각할 수 있지만 렌더링이 아닌 컨텍스트 만 수행합니다.
[02/Mar/2014 23:07:10] INFO [myApp.page_processors:13] page_progessor logging test
등 : 내가 로거가 표시되지 않는 페이지를 새로 고침하지만 파일에 인쇄 및 로그를 볼 때 내가
import logging
logger = logging.getLogger(__name__)
@process_for(MyPage):
def myfunc(request, Page):
logger.info('page_processor logging test')
print 'my page_processor print'
(...)
이 page_processors.py에
나는 논리가 효과가 있다는 것을 알고있다. 인터넷 검색을 한 후이 문제를 정확히 해결 한 this과 this page을 발견했습니다. 그는 기본적으로 logging.StreamHandler가 STDERR에 기록한다고 말합니다. 우리는 STDOUT에 기록하려면 당신은 logging.StreamHandler 구조에 키워드 인수 '스트림'을 추가하고, 그래서 같은 핸들러를 구성해야합니다
'handlers':{
(...)
'console':{
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'stream': sys.stdout
},
}
이 여전히 작동하지 않습니다 밝혀, 그리고 돈 오류가 발생하지 않았는데 인쇄본과 파일 로그를 볼 수 있습니다. 콘솔 로거가 아닙니다.
무슨 일 이니?
편집 : 시도해 본 결과 this은 차이가 없습니다.
감사 :
그래서이 문제에 대한 해결책은 제대로 로거 이름을 지정하는 것입니다. __ stdout __이 작동하지 않습니다.그래, 나는 그 코드에 아무 문제가 없다고 믿을 수있다. (어쨌든 나는 그것을 다른 곳에서 가져왔다.) 파일에 로깅조차도 작동한다는 것이 이상하다. 다른 제안? – oneloop