Django unittest-如何仅禁用控制台日志记录
我在django(v2.2)中有一个测试,它会生成一个错误,目的是检查错误是否记录在正确的日志文件中 但我也得到了一个打印在控制台这是一种恼人的,我正在寻找一种方法来隐藏信息 如果使用Django unittest-如何仅禁用控制台日志记录,django,python-unittest,Django,Python Unittest,我在django(v2.2)中有一个测试,它会生成一个错误,目的是检查错误是否记录在正确的日志文件中 但我也得到了一个打印在控制台这是一种恼人的,我正在寻找一种方法来隐藏信息 如果使用logging.disable(logging.CRITICAL)禁用日志记录,则不会将错误记录到文件中 在从记录器中删除控制台处理程序(请参见下面的设置)后,我还尝试将与self.settings(LOGGING=LOGGING)结合使用,但似乎没有考虑到这一点 此外,将disable_existing_logg
logging.disable(logging.CRITICAL)
禁用日志记录,则不会将错误记录到文件中
在从记录器中删除控制台处理程序(请参见下面的设置)后,我还尝试将与self.settings(LOGGING=LOGGING)
结合使用,但似乎没有考虑到这一点
此外,将disable_existing_logger
设置为True也没有帮助
你有什么办法吗
我的设置:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'msg_filter': {
'()': MessageFilter,
'strings_to_be_ignored': [
'Not Found: /favicon.ico'
],
}
},
'formatters': {
'verbose': {
'format': '_____________________________________________________________'
'\n%(asctime)s - [%(levelname)s|%(name)s] %(message)s\n'
},
'simple': {
'format': '%(asctime)s - [%(levelname)s|%(name)s] %(message).50s'
},
},
'handlers': {
'warning': {
'level': 'WARNING',
'class': 'logging.FileHandler',
'filename': '/some_folder/warning.log',
'formatter': 'verbose',
'filters': ['msg_filter']
},
'warning_simple': {
'level': 'WARNING',
'class': 'logging.FileHandler',
'filename': '/some_folder/warning.log',
'formatter': 'simple',
'filters': ['msg_filter']
},
'info': {
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/some_folder/info.log',
'maxBytes': 1024 * 1024 * 2,
'backupCount': 9,
'formatter': 'simple',
'filters': ['msg_filter']
},
'console': {
'level': 'INFO',
'class': 'logging.StreamHandler',
'formatter': 'verbose',
'filters': ['msg_filter']
},
'console_simple': {
'level': 'INFO',
'class': 'logging.StreamHandler',
'formatter': 'simple',
'filters': ['msg_filter']
}
},
'loggers': {
'': {
'handlers': ['console', 'info', 'warning'],
'level': 'DEBUG',
'propagate': False,
},
'django': {
'handlers': ['console_simple', 'info', 'warning_simple'],
'level': 'DEBUG',
'propagate': False,
}
}
}
您应该设置
禁用现有的\u记录器
变量True
。此变量为true表示记录器被禁用。
请阅读以下内容:
嗨@Meshkat,谢谢你的回答,不幸的是我尝试了,但没有成功。我在描述中犯了一个错误,我的意思是“另外,将disable_existing_logger设置为True也没有帮助”,现在已经更正了。