2017-07-31 43 views

答えて

0

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 
+0

回答ありがとう!私はそれをテストします。それについての小さなコメント、今日の1.1ログバックシリーズの最後のダウンロード可能なバージョンは1.1.10です。 1.1.13のバージョンはありません(まだ)。 [download dist page](https://logback.qos.ch/dist/) – guindous

+0

私の答えでは、私は1.1.3と1.1.13を謝罪しました。正しいバージョン(つまり、shutdownHookが導入されたバージョン)は1.1.3です。したがって、1.1.10で利用可能です。 1.1.10を使用しているので、logback.groovyでshutdownHookを定義するために私が提供した指示に従うだけでアップグレードする必要はありません。私は私の答えを更新しました。 – glytching

関連する問題