在使用SLF4J时,如何动态 Select 日志(log)消息级别?有可能吗?我希望避免编写像这样的代码

String message = "message";
if (someCondition) {
    log.info(message);
} else if (someOtherCondition) {
    log.warn(message);
} // and potentially even more ifs

这样会更好(代码是编造的,这样的方法实际上并不存在)

String message = "message";
log.log(message, levelProvider::getLoggingLevel);

请注意,这个问题不是关于setting a logging level of the entire logger

推荐答案

我觉得你想用Logger.atLevel(Level)来换取LoggingEventBuilder分.然后你可以拨打log(String).喜欢,

logger.atLevel(levelProvider.getLoggingLevel()).log(message);

Java相关问答推荐

Java应用程序崩溃时试图读取联系人从电话

Cucumber TestNG Assert失败,出现java. lang. Numbercycle异常

调用引发泛型异常的泛型方法时出现编译错误

如何创建一个2d自上而下的移动系统,其中移动,同时持有两个关键是可能的处理?

Spring Boot Maven包

如何在antlr4中跳过所有反斜杠-换行符而保留换行符?

在学习Spring时,通过构造函数参数0表达了不满意的依赖关系

如何在太阳系模拟器中添加月球?

当构造函数创建一个新实例时,Java为什么需要&new";

根本不显示JavaFX阿拉伯字母

如何以编程方式保存workBench.xmi?

JavaFX:无论何时显示应用程序,如何更改组件/ node 位置?

如何在SWT菜单项文本中保留@字符

Win32函数的JNA绑定DwmGetColorizationColor返回E_INVALIDARG错误

在单例类上获取Java锁,了解原因

如何使用Java ZoneID的区域设置?

将基于实例编号的对象列表拆分为新的对象列表

Java中的一个错误';s stdlib SocksSocketImpl?

将@Transactional添加到Spring框架中链下的每个方法会产生什么效果?

在JSON上获取反斜杠