Spring Boot中Logback DB Appender如何填充logging_event表的arg0字段?
填充Logback DB Appender的logging_event表arg字段方法
这些arg0、arg1等字段对应日志的参数化占位符值,必须通过SLF4J的参数化日志API来填充,不能用字符串直接拼接。
错误写法(不会填充arg字段):
log.info("用户ID: " + userId + " 操作资源: " + resourceName);这种方式Logback只会把拼接后的完整字符串存入
formatted_message字段,arg系列字段会留空。正确写法(自动填充arg字段):
// 单个参数,对应arg0 log.info("用户ID: {}", userId); // 多个参数,依次对应arg0、arg1 log.info("用户ID: {} 操作资源: {}", userId, resourceName);使用
{}作为占位符,调用带Object...参数的日志方法(info/debug/warn/error等),Logback会自动把占位符对应的参数依次存入arg0、arg1...字段;如果参数是长文本或复杂对象,会同时存入对应的arg0_clob、arg1_clob等大字段(对象会调用其toString()方法序列化)。复杂参数示例:
UserDto user = new UserDto(1L, "张三"); // arg0会存入user.toString()的结果 log.debug("用户详情: {}", user);
只要遵循参数化日志的写法,Logback的DB Appender就会自动完成arg系列字段的填充,不需要额外配置。
内容的提问来源于stack exchange,提问作者Mohamed Saber
相关产品推荐
相关产品推荐

