如何将 Django 警告和错误记录到生产日志文件中?
How to log Django warnings and errors to log file in Production?
我想要实现的是将生产中发生的警告和错误(即 DEBUG=False
)记录到循环日志文件中。
我试过了
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'handlers': {
'file': {
'level': 'WARNING',
'class': 'logging.FileHandler',
'filename': 'staging.log',
},
},
'loggers': {
'': {
'handlers': ['file'],
'level': 'WARNING',
'propagate': True,
},
'django': {
'handlers': ['file'],
'level': 'WARNING',
'propagate': True,
},
'django.request': {
'handlers': ['file'],
'level': 'WARNING',
'propagate': True,
},
},
}
但是,上面记录了所有内容,而不仅仅是日志级别 WARNING
及更高级别的消息。
您可以关注 django logger here。
在你的 views.py:
import logging
logger = logging.getLogger(__name__)
然后您可以使用 logger.error()
或 logger.warning()
或 logger.info()
进行录制。
它将在您的主项目目录中创建一个记录器文件,并列出所有日志记录详细信息。
看到这个:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}',
'style': '{',
},
'simple': {
'format': '{levelname} {message}',
'style': '{',
},
},
'handlers': {
'logfile': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': "yourproject_name.log",
'maxBytes': 100000,
'backupCount': 2,
'formatter': 'verbose',
},
},
'loggers': {
'django': {
'handlers': ['logfile'],
'level': 'INFO',
'propagate': True,
},
'apps': {
'handlers': ['logfile'],
'level': 'DEBUG',
'propagate': True,
},
},
}
我想要实现的是将生产中发生的警告和错误(即 DEBUG=False
)记录到循环日志文件中。
我试过了
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'handlers': {
'file': {
'level': 'WARNING',
'class': 'logging.FileHandler',
'filename': 'staging.log',
},
},
'loggers': {
'': {
'handlers': ['file'],
'level': 'WARNING',
'propagate': True,
},
'django': {
'handlers': ['file'],
'level': 'WARNING',
'propagate': True,
},
'django.request': {
'handlers': ['file'],
'level': 'WARNING',
'propagate': True,
},
},
}
但是,上面记录了所有内容,而不仅仅是日志级别 WARNING
及更高级别的消息。
您可以关注 django logger here。
在你的 views.py:
import logging
logger = logging.getLogger(__name__)
然后您可以使用 logger.error()
或 logger.warning()
或 logger.info()
进行录制。
它将在您的主项目目录中创建一个记录器文件,并列出所有日志记录详细信息。
看到这个:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}',
'style': '{',
},
'simple': {
'format': '{levelname} {message}',
'style': '{',
},
},
'handlers': {
'logfile': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': "yourproject_name.log",
'maxBytes': 100000,
'backupCount': 2,
'formatter': 'verbose',
},
},
'loggers': {
'django': {
'handlers': ['logfile'],
'level': 'INFO',
'propagate': True,
},
'apps': {
'handlers': ['logfile'],
'level': 'DEBUG',
'propagate': True,
},
},
}