2017-09-15 2 views
0

코드의이 부분 유무 : 예는 뭔가 다른 아마은 처리하려고 logging.error

+0

응용 프로그램 내에서 * 의미합니까? 해당 수준의 로그를 처리하는 새 처리기를 만들고 추가해야합니다. – jonrsharpe

+0

당신은이 블로그를보고 적응할 수 있습니다 : https://docs.pylonsproject.org/projects/pyramid-cookbook/en/latest/logging/sqlalchemy_logger.html –

+0

@LaurentLAPORTE, 도와 줘서! –

답변

1

을 데이터베이스에 로그 저장하거나 할 수 있도록 내가 logging.error 호출을 처리 할 수있는 방법

import logging 

logFormatter = logging.Formatter(u'#%(levelname)-8s [%(asctime)s] [LINE:%(lineno)d] %(filename)-8s %(message)s',) 
logger = logging.getLogger() 
logger.setLevel(logging.INFO) 

consoleHandler = logging.StreamHandler() 
consoleHandler.setFormatter(logFormatter) 

logger.addHandler(consoleHandler) 

가장 간단한 대답은 서로 다른 로깅 수준을 가진 여러 핸들러를 사용하는 것입니다. logging docs에서, 여기 당신이 달성 하려는지의 완벽한 예입니다

import logging 

logger = logging.getLogger('simple_example') 
logger.setLevel(logging.DEBUG) 
# create file handler which logs even debug messages 
fh = logging.FileHandler('spam.log') 
fh.setLevel(logging.DEBUG) 
# create console handler with a higher log level 
ch = logging.StreamHandler() 
ch.setLevel(logging.ERROR) 
# create formatter and add it to the handlers 
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') 
ch.setFormatter(formatter) 
fh.setFormatter(formatter) 
# add the handlers to logger 
logger.addHandler(ch) 
logger.addHandler(fh) 

# 'application' code 
logger.debug('debug message') 
logger.info('info message') 
logger.warn('warn message') 
logger.error('error message') 
logger.critical('critical message') 

예는 제공이 두 로그 레벨 유형 서식 DEBUGERROR 수준 핸들러입니다.

아마도 다른 해결책은 logging 모듈 구성을 처리하기 위해 dictConfig을 사용하는 것입니다. 그러면 구조가 dictionary 형식으로 처리되고 level 특성에 여러 값을 제공 할 수 있습니다.