0
는 내가 프로젝트에 대한 로거 클래스를 짓고 있어요, 나는 형식Python 로깅 - 추가 출력?
2017-05-16 13:29:17,573 - Geospatial - INFO - Using only New York Geolocations
2017-05-16 13:29:18,325 - Server - INFO - Successfully launched AppLogs consumer
에 로그를 제공하는 출력을 지정한하지만 콘솔 또한 내가 원하지 않는이 줄을 인쇄한다.
INFO:Server:Successfully launched AppLogs consumer
로거 출력 파일에 대한 올바른 출력을 인쇄한다. 어쩌면 핸들러와 관련이 있다고 생각했지만 시도한 수정으로 차단할 수 없었습니다. 어떤 생각이라도 감사 할 것입니다.
여기 클래스의 :
import os
import logging
import logging.config
import yaml
class Logger():
#Types of Logs: debug, info, warning & error
def __init__(self, name):
with open("config.yml", 'r') as ymlfile:
cfg = yaml.load(ymlfile)
if 'file_name' in cfg['logging']:
file_name = cfg['logging']['file_name']
else:
file_name = 'application'
if 'folder_name' in cfg['logging']:
folder_name = cfg['logging']['folder_name']
else:
folder_name = 'logs'
if not os.path.exists('{}/'.format(folder_name)):
os.makedirs(folder_name)
file_name = os.path.join(os.getcwd(),
'{}/{}.log'.format(folder_name, file_name))
name = name.replace('.log','')
if name.lower() in cfg['logging']:
if cfg['logging'][name.lower()] == 'info':
level = logging.INFO
elif cfg['logging'][name.lower()] == 'debug':
level = logging.DEBUG
elif cfg['logging'][name.lower()] == 'error':
level = logging.ERROR
else:
level = logging.DEBUG
else:
level = logging.DEBUG
logger = logging.getLogger('{}'.format(name))
logger.setLevel(level)
# create formatter
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler = logging.FileHandler(file_name)
handler.setFormatter(formatter)
handler.setLevel(level)
logger.addHandler(handler)
ch = logging.StreamHandler()
ch.setLevel(level)
# add formatter to ch
ch.setFormatter(formatter)
# add ch to logger
logger.addHandler(ch)
self._logger = logger
def get(self):
return self._logger