如何使用日志模块持续更新日志文件,不包括django服务器控制台的响应消息?
我不熟悉日志模块。我想知道如何持续更新日志文件,不包括响应消息,如2018-06-07 11:33:22330 | INFO | POST/MyProject/HTTP/1.120036 我正在django更新日志,就像如何使用日志模块持续更新日志文件,不包括django服务器控制台的响应消息?,django,python-3.x,django-logging,Django,Python 3.x,Django Logging,我不熟悉日志模块。我想知道如何持续更新日志文件,不包括响应消息,如2018-06-07 11:33:22330 | INFO | POST/MyProject/HTTP/1.120036 我正在django更新日志,就像 import logging log = logging.getLogger('django') log.error("Internal Error: X happened.") 我想完成两项任务: 1.处理请求后立即更新日志文件。 2.在日志文件中,我不想添加POST/My
import logging
log = logging.getLogger('django')
log.error("Internal Error: X happened.")
我想完成两项任务:
1.处理请求后立即更新日志文件。
2.在日志文件中,我不想添加POST/MyProject/HTTP/1.120036之类的消息
在设置中,其中是“级别”:“调试”将其更改为“级别”:“错误”
应该多解释 编写一个自定义日志筛选脚本,该脚本将筛选出所需的内容,并将其添加到日志设置中 按照以下链接将自定义过滤器添加到django settings.py 下面的脚本只允许记录信息级别的消息
#bar.py
import logging
class InfoFilter(logging.Filter):
def filter(self, record):
return record.levelno == logging.INFO
您还可以使用record.name根据需要进行进一步筛选
您需要将过滤器添加到设置中:
settings.py
LOGGING={
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'standard': {
'format': '%(asctime)s|%(levelname)s|%(message)s'
}
},
'filters': {
'special': {
'()': 'Foo.bar',
}
},
'handlers': {
'file': {
'level': 'DEBUG',
'class': "logging.handlers.RotatingFileHandler",
'formatter': 'standard',
'filters': ['special'],
'filename': "C:\\ProgramData\\PROGRAMX\\Logs\\PROGRAMX_logs_%s.txt"%(datetime.today().strftime("%Y_%m_%d"))
}
},
'loggers': {
'django': {
'handlers': [
'file'
],
'level': 'DEBUG',
'propagate': True,
'format': '%(asctime)s|%(levelname)s|%(message)s'
}
}
}
谢谢ddg。但它正在阻止所有信息消息。我想记录除POST/MyProject/HTTP/1.120036之外的所有信息消息。对不起,我看不到一个简单的方法来改变这种行为。也许可以写一个脚本来检查你的日志,然后删除这些消息?谢谢,我终于找到了解决方案。我需要做记录。名字=自定义筛选方法中的server.django。
#bar.py
import logging
class InfoFilter(logging.Filter):
def filter(self, record):
return record.levelno == logging.INFO
settings.py
LOGGING={
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'standard': {
'format': '%(asctime)s|%(levelname)s|%(message)s'
}
},
'filters': {
'special': {
'()': 'Foo.bar',
}
},
'handlers': {
'file': {
'level': 'DEBUG',
'class': "logging.handlers.RotatingFileHandler",
'formatter': 'standard',
'filters': ['special'],
'filename': "C:\\ProgramData\\PROGRAMX\\Logs\\PROGRAMX_logs_%s.txt"%(datetime.today().strftime("%Y_%m_%d"))
}
},
'loggers': {
'django': {
'handlers': [
'file'
],
'level': 'DEBUG',
'propagate': True,
'format': '%(asctime)s|%(levelname)s|%(message)s'
}
}
}