我们希望记录正在记录的文件的路径.
例如,我有一个文件views.py-此文件名在Django项目的许多应用程序中重复,因此我们需要在文件名中包含应用程序名-Polls\views.py 另一方面,我们不想要完整的绝对路径..
以下是格式行:
format": "{levelname}: {message} at {asctime} in {filename} {funcName} {lineno} (process={process: d}, thread={thread:d})"个
根据this thread,我们只有以下相关选项:文件名、模块和路径名,这些选项都不够用.
还没有找到来自Django logging docs的帮助
我还try 了使用{os.path.dirname(路径名)}操作字符串,但似乎无法正确解析
我们会得到
raise ValueError('Unable to configure '
ValueError: Unable to configure formatter 'verbose'
这是我们的settings.py中的日志(log)记录片段:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
"format": "{levelname}: {message} at {asctime} in {filename} {funcName} {lineno} (process={process: d}, thread={thread:d})",
"style": "{",
},
'default': {
'format': '%(asctime)s - %(levelname)s - %(module)s - %(lineno)d => %(message)s',
'datefmt': '%Y-%m-%d %H:%M:%S'
},
},
'handlers': {
'error_file': {
'class': 'logging.handlers.RotatingFileHandler',
'level': 'DEBUG',
'formatter': 'verbose',
'filename': f'logs/error_{datetime.datetime.today().strftime("%Y-%m-%d")}.log',
},
'info_file': {
'class': 'logging.handlers.RotatingFileHandler',
'level': 'INFO',
'formatter': 'verbose',
'filename': f'logs/info_{datetime.datetime.today().strftime("%Y-%m-%d")}.log',
},
'console': {
'class': 'logging.StreamHandler',
'formatter': 'default',
},
},
'loggers': {
'error_logger': {
'handlers': ['error_file', 'console'],
'level': 'DEBUG',
'propagate': False,
},
'info_logger': {
'handlers': ['info_file', 'console'],
'level': 'INFO',
'propagate': False,
},
},
}