파이썬을 사용하여 로거를 작성하려고합니다. 2.6에서 작업 중이므로 새 사전 스타일 방법을 사용할 수 없으며 좋은 구식 구성 파일을 사용하고 있습니다. 문제는 콘솔에 두 번 출력물을 채우는 것입니다. 이유를 이해할 수 없습니다. 여기 내 테스트 스크립트는 다음과 같습니다Python Logger가 콘솔에 두 번 물건을 로깅합니다.
import logging
import logging.config
if __name__ == "__main__":
logging.config.fileConfig("newSlogger.conf")
slogger = logging.getLogger("sloggerMain")
slogger.debug("dbg msg")
slogger.info("herp derp dominae")
여기 내 config 파일의 :
[loggers]
keys=root,sloggerMain,sloggerSecondary
[handlers]
keys=consoleHandler,infoFileHandler,debugFileHandler
[formatters]
keys=consoleFormatter,infoFileFormatter,debugFileFormatter
[logger_root]
handlers=consoleHandler
level=NOTSET
[logger_sloggerMain]
handlers=consoleHandler,infoFileHandler,debugFileHandler
level=DEBUG
qualname=sloggerMain
[logger_sloggerSecondary]
handlers=consoleHandler,infoFileHandler,debugFileHandler
level=DEBUG
qualname=sloggerSecondary
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
format=consoleFormatter
args=(sys.stdout,)
[handler_infoFileHandler]
class=FileHandler
level=INFO
formatter=infoFileFormatter
args=("testlog.log", "w")
[handler_debugFileHandler]
class=FileHandler
level=DEBUG
formatter=debugFileFormatter
args=("testlogdbg.log", "w")
[formatter_consoleFormatter]
format=%(name)s: %(asctime)s %(levelname)s %(message)s
datefmt=%Y-%m-%d %H:%M:%S
[formatter_infoFileFormatter]
format=%(name)s: %(asctime)s %(levelname)s %(message)s
datefmt=%Y-%m-%d %H:%M:%S
[formatter_debugFileFormatter]
format=%(name)s: %(asctime)s %(levelname)s %(message)s
datefmt=%Y-%m-%d %H:%M:%S
[formatter_syslogFormatter]
format=%(name)s: %(asctime)s %(levelname)s %(message)s
datefmt=%Y-%m-%d %H:%M:%S
어떤 아이디어가?