Django unittest-如何仅禁用控制台日志记录

Django unittest-如何仅禁用控制台日志记录,django,python-unittest,Django,Python Unittest,我在django(v2.2)中有一个测试,它会生成一个错误,目的是检查错误是否记录在正确的日志文件中 但我也得到了一个打印在控制台这是一种恼人的,我正在寻找一种方法来隐藏信息 如果使用logging.disable(logging.CRITICAL)禁用日志记录,则不会将错误记录到文件中 在从记录器中删除控制台处理程序(请参见下面的设置)后,我还尝试将与self.settings(LOGGING=LOGGING)结合使用,但似乎没有考虑到这一点 此外,将disable_existing_logg

我在django(v2.2)中有一个测试,它会生成一个错误,目的是检查错误是否记录在正确的日志文件中

但我也得到了一个打印在控制台这是一种恼人的,我正在寻找一种方法来隐藏信息

如果使用
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也没有帮助”,现在已经更正了。