Java 将特定日志写入日志文件spring boot/slf4j

Java 将特定日志写入日志文件spring boot/slf4j,java,spring-boot,logback,slf4j,spring-kafka,Java,Spring Boot,Logback,Slf4j,Spring Kafka,我可以在此处使用此方法将控制台日志写入旋转日志文件: https://www.codejava.net/frameworks/spring-boot/logback-rolling-files-example 但我的要求是只将特定的日志写入日志文件,而不是整个控制台日志。例如,我只需要将Kafka侦听器接收到的json消息(我可以使用slf4j支持的log.info(message)在控制台上打印它们)写入日志文件,而不需要更多。如何在我的spring boot应用程序中实现这一点?对于slf

我可以在此处使用此方法将控制台日志写入旋转日志文件:

https://www.codejava.net/frameworks/spring-boot/logback-rolling-files-example

但我的要求是只将特定的日志写入日志文件,而不是整个控制台日志。例如,我只需要将Kafka侦听器接收到的json消息(我可以使用slf4j支持的log.info(message)在控制台上打印它们)写入日志文件,而不需要更多。如何在我的spring boot应用程序中实现这一点?对于slf4j logback,这是不可能的吗?

在记录器元素中指定
附录引用

因此,在记录器XML配置文件中类似于以下内容:

<appender name="console" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/>
    </layout>
</appender>

<appender name="bdfile" class="org.apache.log4j.RollingFileAppender">
    <param name="append" value="false"/>
    <param name="maxFileSize" value="1GB"/>
    <param name="maxBackupIndex" value="2"/>
    <param name="file" value="/tmp/bd.log"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/>
    </layout>
</appender>

然后在同一个配置文件中,向您感兴趣的日志文件添加一个appender引用

<logger name="com.example.ClassWithJsonMessage" additivity="false">
    <level value="debug"/>
    <appender-ref ref="bdfile"/>
</logger>