2016-06-15 22 views
0

私たちはアプリケーションを持っています。条件がある場合。条件に基づいて、真の場合は、いくつかのログメッセージを1つのファイルに書き出します。それ以外の場合は、メッセージを別のファイルに記録します。いくつかの条件に基づいて異なるファイルにログインする

ログは、ログレベルに基づくのではなく、条件に基づいて発生する必要があります。

yamlファイルを使用してdropwizardでどのように可能ですか?

答えて

2

これは、サポートされています。ここに私の例があります:

server: 
    rootPath: /api/* 
    requestLog: 
    appenders: [] 
    applicationConnectors: 
    - type: http 
    port: 9085 
logging: 
    level: INFO 
    loggers: 
    "my-log-1": 
     level: DEBUG 
     additive: false 
     appenders: 
     - type: file 
      currentLogFilename: /home/artur/var/log/test1.log 
      archivedLogFilenamePattern: /home/artur/var/log/test1.log%d.log.gz 
      archivedFileCount: 5 
      logFormat: '[%level] %msg%n' 
    "my-log-2": 
     level: DEBUG 
     additive: false 
     appenders: 
     - type: file 
      currentLogFilename: /home/artur/var/log/test2.log 
      archivedLogFilenamePattern: /home/artur/var/log/test2.log%d.log.gz 
      archivedFileCount: 5 

注:設定でタブを使用することはできません。

この構成では、2つのロガーが作成されます。最初は「my-log-1」と呼ばれ、2番目は「my-log-2」と呼ばれます。

あなたは今、自分のアプリケーションでは、たとえば、Javaクラスでこれらのロガーを作成することができます。

public class Application extends io.dropwizard.Application<Configuration>{ 


    private static final Logger log = Logger.getLogger("my-log-1"); 
    private static final Logger log2 = Logger.getLogger("my-log-2"); 


    @Override 
    public void run(Configuration configuration, Environment environment) throws Exception { 

     log.info("Test1"); // writes to first file 
     log2.info("Test2"); // logs to seconds file 



    } 

    public static void main(String[] args) throws Exception { 
     new Application().run("server", "/home/artur/dev/repo/sandbox/src/main/resources/config/test.yaml"); 
    } 
} 

は2つのロガーとファイルの先頭にその作成に注意してください。

これはロガーのように使用できるようになりました。あなたの条件を追加し、離れてログインします。

 int random = new Random().nextInt(); 

     if(random % 2 == 0) { 
      log.info("Test1"); // writes to first file 
     } else { 
      log2.info("Test2"); // logs to seconds file 
     } 

私はそれがあなたの質問に答える願って、

おかげで、

アルトゥル

+0

ありがとう!これは私にとってもうまくいく。ログパターンを "%m%n"に設定するには、YAMLにもう1行追加してください。 – pMan

関連する問題