我在SpringBoot应用程序中遇到了一个非常奇怪的slf 4j日志问题。代码示例-
@RestControllerAdvice
@Slf4j
public class ControllerAdvice{
public ResponseEntity getErrors(String status, String source, String uid, String res) {
...
...
log.error("Error is {} source, uid, res: {} | {} | {}", status, source, uid, res);
...
...
}
}
在这里,只要任何一个参数(status、source、uid或res)为空,整个日志就会被跳过。有没有什么方法可以打印该值,即使它为空?
我使用的依赖项如下-
//sfl4j
compile("org.slf4j:slf4j-api:1.7.32")
//lombok
compileOnly("org.projectlombok:lombok:1.18.2")
annotationProcessor("org.projectlombok:lombok:1.18.8")
2条答案
按热度按时间biswetbf1#
尝试使用
String.format(...)
。像这样:
log.error(String.format("Error is %s source, uid, res: %s | %s | %s", status, source, uid, res));
jhdbpxl92#
我能够通过从Slf 4j转移到Log4j 2(即@Log4j2)来获得成功。