Здравствуйте, ребята, у меня есть программа json, которая выдаст файл журнала в формате json, но я не могу получить вывод ... Это файл json, который называется "logging.json"
{
"version": 1,
"disable_existing_loggers": false,
"formatters": {
"json": {
"format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s",
"()": "pythonjsonlogger.jsonlogger.JsonFormatter"
}
},
"handlers": {
"console": {
"class": "logging.StreamHandler",
"formatter": "json"
}
},
"file_handler": {
"class": "logging.handlers.RotatingFileHandler",
"level": "INFO",
"formatter": "json",
"filename": "Data-Generation.log",
"mode": "a",
"encoding": "utf8"
},
"root": {
"level": "DEBUG",
"handlers": ["console", "file_handler"]
}
}
Теперь я пытаюсь получить доступ к моей программе на Python следующим образом:
fp = open('logging.json')
logging.config.dictConfig(json.load(fp))
logger = logging.getLogger(__name__)
fp.close()
logger.info("Logging is started")
Я получаю эту ошибку:
Traceback (most recent call last):
File "C:\Users\rahul\AppData\Local\Programs\Python\Python37-32\lib\logging\config.py", line 753, in add_handlers
logger.addHandler(self.config['handlers'][h])
File "C:\Users\rahul\AppData\Local\Programs\Python\Python37-32\lib\logging\config.py", line 315, in __getitem__
value = dict.__getitem__(self, key)
KeyError: 'file_handler'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\rahul\AppData\Local\Programs\Python\Python37-32\lib\logging\config.py", line 634, in configure
self.configure_root(root)
File "C:\Users\rahul\AppData\Local\Programs\Python\Python37-32\lib\logging\config.py", line 786, in configure_root
self.common_logger_config(root, config, incremental)
File "C:\Users\rahul\AppData\Local\Programs\Python\Python37-32\lib\logging\config.py", line 770, in common_logger_config
self.add_handlers(logger, handlers)
File "C:\Users\rahul\AppData\Local\Programs\Python\Python37-32\lib\logging\config.py", line 755, in add_handlers
raise ValueError('Unable to add handler %r' % h) from e
ValueError: Unable to add handler 'file_handler'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "F:\Codedata\scratch\Python\ManufactureDataWithDateRange\ActionHandler.py", line 17, in <module>
logging.config.dictConfig(json.load(fp))
File "C:\Users\rahul\AppData\Local\Programs\Python\Python37-32\lib\logging\config.py", line 792, in dictConfig
dictConfigClass(config).configure()
File "C:\Users\rahul\AppData\Local\Programs\Python\Python37-32\lib\logging\config.py", line 637, in configure
'logger') from e
ValueError: Unable to configure root logger
Примечание: Это происходит, когда я пытался добавить «streamHandler» в мой файл json до того, как он печатал логи в формате json Я думаю, что есть проблемав "config.dictConfig" я не знаю ... пожалуйста, помогите мне с этим .. рабочая программа без "StreamHandler":
{
"version": 1,
"disable_existing_loggers": false,
"formatters": {
"json": {
"format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s",
"()": "pythonjsonlogger.jsonlogger.JsonFormatter"
}
},
"handlers": {
"file_handler": {
"class": "logging.handlers.RotatingFileHandler",
"level": "DEBUG",
"formatter": "json",
"filename": "Data-Generation.log",
"encoding": "utf8"
}
},
"root": {
"level": "DEBUG",
"handlers": ["file_handler"]
}
}
Это правильный формат Json и печать журналов, но я хочу удалить все ненужные строки из моего журнала, поэтому я попытался включить «streamHnadler», пожалуйста, помогите мне, как это сделать ... Спасибо