通用类或函数中每个应用程序的Django自定义日志记录

时间:2020-06-29 12:35:19

标签: django exception logging django-logging

我当前正在为项目中的所有应用程序登录到其他日志文件。为了进行日志记录,我使用了getLogger和python logger。到目前为止,这可以通过使用具有以下功能的记录器来实现:

logger = logging.getLogger(__package__)

这将使用以下命令登录到settings.py中定义的其他文件:

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
    'project.app': {
        'class': 'logging.handlers.RotatingFileHandler',
        'filename': LOG_DIR + '/app.log',
        'maxBytes': 1024 * 1024 * 10,
        'backupCount': 3,
        'formatter': 'standard',
    },
    'project.app2': {
        'class': 'logging.handlers.RotatingFileHandler',
        'filename': LOG_DIR + '/app2.log',
        'maxBytes': 1024 * 1024 * 10,
        'backupCount': 3,
        'formatter': 'standard',
    },
},
'loggers': {
    'project.app': {
        'handlers': ['project.app'],
    },
    'project.app2': {
        'handlers': ['project.app2'],
    },
}
}

因为我有一个通用的程序包,其中还包含一个通用的异常处理,所以我想将异常记录到相应的文件中。但是由于记录器在通用包中,因此我不确定如何在异常处理程序中获取应用名称(不是通用的,而是app1和app1)来获取正确的记录器。 项目结构如下:

  • app1
  • app2
  • 常见
    • custom_exception

我如何实现将应用程序登录到相应的应用程序/任务对应的日志文件,而不必手动将记录器传递给异常处理程序?

0 个答案:

没有答案