1
groovyの設定でlogback 1.1.10を使用しています。私は最近shutdownHook preferenceを発見しましたが、Groovy構成を使用する方法を見つけられませんでした。これは可能ですか?または欠けている機能?Logback:Groovyの設定を使用してshutdownHookを有効にしてください
groovyの設定でlogback 1.1.10を使用しています。私は最近shutdownHook preferenceを発見しましたが、Groovy構成を使用する方法を見つけられませんでした。これは可能ですか?または欠けている機能?Logback:Groovyの設定を使用してshutdownHookを有効にしてください
LogbackのshutdownHookがv1.1.3で追加され、Groovyを使用して設定できます。 docsは、この問題にビットの光であり、xml->groovy translatorはshutdownHookを無視しますが、以下のように、私はGroovyの設定を経由してシャットダウンフックを含めることを確認しました:
import ch.qos.logback.classic.AsyncAppender
import ch.qos.logback.classic.PatternLayout
import ch.qos.logback.classic.encoder.PatternLayoutEncoder
import ch.qos.logback.core.ConsoleAppender
import static ch.qos.logback.classic.Level.INFO
scan("30 seconds")
statusListener(OnConsoleStatusListener)
def shutdownHook() {
def shutdownHook = new ch.qos.logback.core.hook.DelayingShutdownHook();
shutdownHook.setContext(context);
def Thread hookThread = new Thread(shutdownHook, "Logback shutdown hook [" + context.name + "]");
context.putObject("SHUTDOWN_HOOK", hookThread);
Runtime.getRuntime().addShutdownHook(hookThread);
}
shutdownHook();
appender("Console-Appender", ConsoleAppender) {
encoder(PatternLayoutEncoder) {
pattern = "%d|%-5p|%t|%msg%n"
}
}
logger("com", INFO, ["Console-Appender"], false)
root(INFO, ["Console-Appender"])
これはlogbackを使用するJavaプロセスを実行することによって確認されました、明示的に上記の構成に-Dlogback.configurationFile
を使用して指し示し、その結果出力に使用されているシャットダウンフックが明示されています:
08:47:47,705 |-INFO in [email protected] - Setting ReconfigureOnChangeTask scanning period to 30 seconds
08:47:47,728 |-INFO in [email protected] - Added status listener of type [ch.qos.logback.core.status.OnConsoleStatusListener]
08:47:47,750 |-INFO in [email protected] - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
08:47:47,752 |-INFO in [email protected] - Naming appender as [Console-Appender]
08:47:47,902 |-INFO in [email protected] - Setting level of logger [com] to INFO
08:47:47,911 |-INFO in [email protected] - Attaching appender named [Console-Appender] to Logger[com]
08:47:47,915 |-INFO in [email protected] - Setting level of logger [ROOT] to INFO
08:47:47,915 |-INFO in [email protected] - Attaching appender named [Console-Appender] to Logger[ROOT]
2017-08-01 08:47:48,072|INFO |main|yippee!
Disconnected from the target VM, address: '127.0.0.1:57421', transport: 'socket'
08:47:48,131 |-INFO in [email protected] - Sleeping for 0 milliseconds
08:47:48,131 |-INFO in [email protected] - Logback context being closed via shutdown hook
回答ありがとう!私はそれをテストします。それについての小さなコメント、今日の1.1ログバックシリーズの最後のダウンロード可能なバージョンは1.1.10です。 1.1.13のバージョンはありません(まだ)。 [download dist page](https://logback.qos.ch/dist/) – guindous
私の答えでは、私は1.1.3と1.1.13を謝罪しました。正しいバージョン(つまり、shutdownHookが導入されたバージョン)は1.1.3です。したがって、1.1.10で利用可能です。 1.1.10を使用しているので、logback.groovyでshutdownHookを定義するために私が提供した指示に従うだけでアップグレードする必要はありません。私は私の答えを更新しました。 – glytching