在 PyCharm 下使用 django.test.TestCase
运行/调试单个测试时,不会显示logging.logger消息。我尝试按照 How can I see log messages when unit testing in PyCharm? 的建议设置 logging.basicConfig(level=logging.DEBUG)
但这也没有帮助。我怀疑这可能是 django 的 TestCase
设置干扰。
在测试设置或运行器配置中是否有其他方法可以打开测试运行的调试日志记录?
我现在在 settings.py 中设置的日志记录是:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'formatter': 'verbose'
},
'file': {
'level': 'DEBUG',
'class': 'logging.handlers.TimedRotatingFileHandler',
'filename': '/var/log/em/mcqueen-dev.log',
'when': 'midnight',
'formatter': 'verbose',
},
},
'formatters': {
'verbose': {
'format': '%(asctime)s.%(msecs).03d - %(process)d - %(thread)d - %(levelname)8s - %(filename)s:%(lineno)d - %(funcName)s - %(message)s'
},
'simple': {
'format': '%(asctime)s - %(levelname)s %(message)s'
},
},
'loggers': {
'mcqueen_api': {
'handlers': ['console', 'file'],
'level': os.getenv('DJANGO_LOG_LEVEL', 'DEBUG')
},
'mcqueen_app': {
'handlers': ['console', 'file'],
'level': os.getenv('DJANGO_LOG_LEVEL', 'DEBUG')
},
'mcqueen_base': {
'handlers': ['console', 'file'],
'level': os.getenv('DJANGO_LOG_LEVEL', 'DEBUG')
},
},
}
最佳答案
当我想在 PyCharm 中对 Django 项目进行测试时查看日志时,我会将这段代码放入测试文件中:
import logging
logger = logging.getLogger(__name__)
logging.disable(logging.NOTSET)
logger.setLevel(logging.DEBUG)
虽然运行 Django 测试禁用日志的级别设置得很高(到 50),但降低它(如上面代码中的第 3 行)将导致显示日志(或保存到文件 - 取决于日志处理程序)正在使用)。
关于django - 在 Pycharm 下运行 django 测试记录输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36456827/