首页 文章

SLF4J Logger 未执行{}替换

提问于
浏览
2

我目前在班上使用slf4j logger:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

虽然我在我的代码中使用 {} 替换如下:

logger.info("User {} successfully logged in to the system",u.getEmail());

请检查下面的我的logback配置:

<encoder>
    <pattern>%d [%thread] %-5level %logger{36} H:${HOSTNAME} - SC:%X{optionalParam} %msg%n</pattern>
</encoder>

即使我使用最新的稳定版本slf4j 1.7.25, {} 仍然没有被正确替换 .

以下文本是logger.info的输出:

“用户{}成功登录系统”

我使用LoggerFactory创建 Logger :

Logger logger = LoggerFactory.getLogger(CryptoWorks.class);

1 回答

  • 2

    经过一番调查后,我发现问题出现在logback使用的编码器模式中 .

    我将编码器模式更改为:

    <encoder>
            <pattern>%d [%thread] %-5level %logger{5} H:${HOSTNAME} - %msg%n</pattern>
     </encoder>
    

    一切都开始相应地工作,现在{}替换正在成功执行 .

相关问题