我一直在尝试正确配置django中的日志记录进行开发,所以我现在可以在控制台中看到它,但是当我从print更改为logging时,输出就不会出现了。
django本地设置设置:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse',
},
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'filters': ['require_debug_true'],
'class': 'logging.StreamHandler',
'stream': sys.stdout
},
},
'loggers': {
'myapp.management': {
'handlers': [
# 'mail_admins',
# 'syslog',
'console'],
'level': 'DEBUG',
},
'django': {
'handlers': [
# 'mail_admins',
# 'syslog',
'console'],
'level': 'INFO',
},
}
}
然后在django管理命令中:
import logging
logger = logging.getLogger(__name__)
通过以下方式使用记录器:
def collect_data(self, url, method, payload=None):
response = getattr(requests, method)(url=url json=payload, headers=self.headers)
if response.status_code == 200:
logging.debug('{}'.format(response.json())
# print('{}'.format(response.json()))
return response.json()
else:
logging.warning('{}'.format(response.raise_for_status()))
# print('{}'.format(response.raise_for_status()))
return response.raise_for_status()
答案 0 :(得分:0)
如果管理文件夹中有一个名为test.py的文件,则可以这样配置:
'testproject.management.commands.test': {
'handlers': ['my_handler'],
'level': 'INFO',
'propagate': True
},
test.py中的导入可以这样:
import logging
logger = logging.getLogger(__name__)
Haven目前正确地测试了它,但这是来自我的一个项目,我在管理命令中使用了一个记录器,它工作正常。