我已将Django应用程序配置为可以在生产环境中运行,但无法从django
记录器中获取任何东西。
root记录器正在写出文件和Azure日志,因此我可以看到我的elasticsearch和opencensus日志写得很好,但是Django没什么问题。
此刻,我正在使用INFO级别,以查看是否有任何结果,但是一旦知道事情正在解决,我将对其进行调整。
DEBUG = False
LOGGING = {
"disable_existing_loggers": False,
"filters": {
"require_debug_false": {
'()': 'django.utils.log.RequireDebugFalse',
},
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
},
'formatters': {
'simple': {
'format': '[%(asctime)s] %(levelname)s %(message)s',
'datefmt': '%Y-%m-%d %H:%M:%S'
},
'verbose': {
'format': '[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s',
'datefmt': '%Y-%m-%d %H:%M:%S'
},
},
"handlers": {
"file": {
"class": "logging.FileHandler",
"filename": os.path.join(APP_ROOT, 'logs', 'app.log'),
"level": "INFO",
"formatter": 'verbose',
'filters': ['require_debug_false'],
},
'console': { # writes to the console
'class': 'logging.StreamHandler',
'level': 'INFO',
'filters': ['require_debug_true'],
'formatter': 'verbose'
},
'azure':{
'level': 'INFO',
'filters': ['require_debug_false'],
'class': 'opencensus.ext.azure.log_exporter.AzureLogHandler',
'formatter': 'verbose'
},
},
"loggers": {
'django': {
'handlers': [
'azure',
'file',
],
'level': 'INFO',
},
'': {
'handlers': [
'azure',
'file',
],
'level': 'INFO',
},
},
"version": 1
}
答案 0 :(得分:0)
因此,我发现答案是完全覆盖默认日志记录并从头开始构建它。
在我无法理解的Django路径中发生了什么事。
我强烈建议您访问此站点,因为它易于遵循以下说明-https://www.webforefront.com/django/setupdjangologging.html
LOGGING = {
'disable_existing_loggers': True, #<-- if true then make sure that you have a django and py.warnings logger
'filters': {
"require_debug_false": {
'()': 'django.utils.log.RequireDebugFalse',
},
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
},
'formatters': {
'simple': {
'format': '[%(asctime)s] %(levelname)s %(message)s',
'datefmt': '%Y-%m-%d %H:%M:%S'
},
'verbose': {
'format': '[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s',
'datefmt': '%Y-%m-%d %H:%M:%S'
},
'azure_verbose': {
'format': '[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s traceId=%(traceId)s spanId=%(spanId)s',
'datefmt': '%Y-%m-%d %H:%M:%S'
},
},
'handlers': {
'console': { # writes to the console
'class': 'logging.StreamHandler',
'level': 'INFO',
'filters': ['require_debug_true'],
'formatter': 'verbose'
},
'azure':{ # exports to Azure Monitor. Needs OPENCENSUS elements configured
'level': 'INFO',
'filters': ['require_debug_false'],
'class': 'opencensus.ext.azure.log_exporter.AzureLogHandler',
'formatter': 'azure_verbose'
},
},
'loggers': {
'arches': {
"handlers": [
"azure",
"console",
],
},
'exporter': { # <-- exporter app logger
"handlers": [
"azure",
"console",
],
},
'django': { # <-- must have one django
'handlers': [
'azure',
'console',
],
},
'py.warnings': { # <-- implement from default
'handlers': [
'azure',
'console',
],
},
'': { # <-- catchall
'handlers': [
'azure',
'console',
],
},
},
'version': 1
}