Ich baue eine Logger-Klasse für ein Projekt, und ich habe eine Ausgabe festgelegt, die Protokolle im Format auchPython-Protokollierung - Extra-Ausgabe?
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
Aber die Konsole präsentiert druckt diese Zeile, die ich nicht will.
INFO:Server:Successfully launched AppLogs consumer
Der Logger druckt die richtige Ausgabe in die Ausgabedatei. Ich dachte, vielleicht hatte es etwas mit den Handlern zu tun, aber ich konnte es nicht mit den Modifikationen blockieren, die ich versuchte. Irgendwelche Gedanken würden geschätzt werden.
Hier ist die Klasse:
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