spring 当其中一个参数为Null时,无法打印log.error

r3i60tvu  于 2022-12-02  发布在  Spring
关注(0)|答案(2)|浏览(192)

我在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")
biswetbf

biswetbf1#

尝试使用String.format(...)
像这样:log.error(String.format("Error is %s source, uid, res: %s | %s | %s", status, source, uid, res));

jhdbpxl9

jhdbpxl92#

我能够通过从Slf 4j转移到Log4j 2(即@Log4j2)来获得成功。

相关问题