"NoModuleNamed" при использовании пользовательских фильтров протоколирования
Я пытаюсь использовать разные форматеры для разных уровней журнала, для этого я создал пользовательский фильтр. Вот какую ошибку я получаю:
Traceback (most recent call last):
File "...\Python\Python39\lib\logging\config.py", line 385, in resolve
found = self.importer(used)
ModuleNotFoundError: No module named 'logging_formatter'
В my_django_project/logging_formatter/formatter_filter.py
у меня есть фильтр с именем FilterLevels
И settings.py:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'info_formatter': {
'format': '{asctime}|{levelname}|{message} [in {funcName}]',
'datefmt': '%Y-%m-%d %H:%M:%S',
'style': '{',
},
'error_formatter': {
'format': '{asctime}|{levelname}|{message} [in {filename}:{funcName}:{lineno}]',
'datefmt': '%Y-%m-%d %H:%M:%S',
'style': '{',
},
},
'filters': {
'filter_info_level': {
'()': 'logging_formatter.formatter_filter.FilterLevels',
'filter_levels' : [
"INFO"
]
},
'filter_error_level': {
'()': 'logging_formatter.formatter_filter.FilterLevels',
'filter_levels' : [
"ERROR"
]
},
'filter_warning_level': {
'()': 'logging_formatter.formatter_filter.FilterLevels',
'filter_levels' : [
"WARNING"
]
}
},
'handlers': {
'app_info': {
'formatter': 'info_formatter',
'filters': ['filter_info_level'],
'class': 'logging.StreamHandler',
'filename': 'my_django_project/logs/app.log',
},
'app_error': {
'formatter': 'error_formatter',
'class': 'logging.StreamHandler',
'filename': 'my_django_project/logs/app.log',
'filters': ['filter_error_level'],
},
},
'loggers': {
'my_django_project.app': {
'handlers': ['app_info', 'app_error'],
'level': 'DEBUG',
},
},
}