logbackファイルをリアルタイムで更新する方法は?
logbackファイルをリアルタイムでリフレッシュするには、次の手順に従う必要があります。
- <設定>
<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>
- ロガーファクトリー.ゲットロガー()
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");
}
}
- ロガーコンテキスト
- リセットする
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はログファイルをリアルタイムで更新します。