我当前正在为项目中的所有应用程序登录到其他日志文件。为了进行日志记录,我使用了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)来获取正确的记录器。 项目结构如下:
我如何实现将应用程序登录到相应的应用程序/任务对应的日志文件,而不必手动将记录器传递给异常处理程序?