Django:如何将每个应用程序记录到一个单独的文件中



我在settings.py文件中有我的django日志定义,如下所示:

LOG_DIR = '/var/log/myapp/'
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'standard': {
'format' : "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s",
'datefmt' : "%d/%b/%Y %H:%M:%S"
},
},
'handlers': {
'null': {
'level':'DEBUG' if DEBUG else 'WARNING',
'class':'logging.NullHandler',
},
'logfile': {
'level':'DEBUG' if DEBUG else 'WARNING',
'class':'logging.handlers.RotatingFileHandler',
'filename': LOG_DIR + "/application.log",
'maxBytes': 1024 * 1024 * 10, #Max 10MB
'backupCount': 3,
'formatter': 'standard',
},
'console':{
'level':'INFO',
'class':'logging.StreamHandler',
'formatter': 'standard'
},
},
'loggers': {
'django': {
'handlers':['console'],
'propagate': True,
'level':'WARN',
},
'django.db.backends': {
'handlers': ['console'],
'level': 'DEBUG' if DEBUG else 'WARNING',
'propagate': False,
},
'': {
'handlers': ['console', 'logfile'],
'level': 'DEBUG',
},
}
}

现在,我在这个项目中有几个应用程序,我必须以一种简单的方式组织它们的日志记录,相互创建一个单独的日志,我的意思是:

  • 项目常规日志
  • My_App1日志
  • My_App2日志
  • My_App3日志

Django是否可以简单地实现这一点?

在"loggers"下,每个应用程序都需要一个条目:

'app1': {
'handlers': ['app1'],
},

同样在"处理程序"下:

'app1': {
'level':'DEBUG' if DEBUG else 'WARNING',
'class':'logging.handlers.RotatingFileHandler',
'filename': LOG_DIR + "/app1.log",
'maxBytes': 1024 * 1024 * 10, #Max 10MB
'backupCount': 3,
'formatter': 'standard',
},

最新更新