logbackファイルをリアルタイムで更新する方法は?

logbackファイルをリアルタイムでリフレッシュするには、次の手順に従う必要があります。

  1. <設定>
<configuration debug="true">
  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>/path/to/logfile.log</file>
    <append>true</append>
    <encoder>
      <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
    </encoder>
  </appender>

  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
    </encoder>
  </appender>

  <root level="debug">
    <appender-ref ref="FILE" />
    <appender-ref ref="CONSOLE" />
  </root>
</configuration>
  1. ロガーファクトリー.ゲットロガー()
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MyClass {
  private static final Logger logger = LoggerFactory.getLogger(MyClass.class);

  public void myMethod() {
    logger.info("This is a log message");
  }
}
  1. ロガーコンテキスト
  2. リセットする
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.core.util.StatusPrinter;

public class MyClass {
  private static final Logger logger = LoggerFactory.getLogger(MyClass.class);

  public void myMethod() {
    logger.info("This is a log message");

    LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
    loggerContext.reset();
    StatusPrinter.print(loggerContext);
  }
}

これにより、ログメッセージを記録した後、logbackはログファイルをリアルタイムで更新します。

bannerAds