2016-11-17 12 views
1

wildfly Swarmベースのアプリケーションを開発する際、どのようにproject-stages.ymlから使用できるプロパティを使用してログレベルを設定できますか?Wildfly Swarmによるログレベルの設定

つまり、Springブートの "logging.level.com.acme.rest = DEBUG"プロパティに相当するものは何ですか?

現在、私がいることを知っている:

  • は "swarm.logging = DEBUG" は(私は必要なものではない)すべてログレベルを設定するために使用することができます
  • A "standalone.xml" が使用可能しかし、ドキュメンテーションも「logging.level」を言及
  • 十分に優しいLoggingFractionは、プログラムに使用することができOPSは(私が必要なものもありません)ログレベルを設定していません私は今のところ

はお時間をいただき、ありがとうございますそれを動作させることができませんでした

答えて

3

protected LoggingFraction logging() { 

     String logName = swarm.stageConfig().resolve("application.name").getValue(); 
     String category = swarm.stageConfig().resolve("logger.category").getValue(); 

     String levelName =swarm.stageConfig().resolve("logger.level").getValue(); 

     final String logFile = System.getProperty("user.dir") + File.separator+ 
       "target"+File.separator+ 
       logName+".log"; 

     LoggingFraction loggingFraction = new LoggingFraction() 
       .periodicSizeRotatingFileHandler(logName,(h)->{ 
        h.level(Level.valueOf(levelName)) 
          .append(true) 
          .suffix(".yyyy-MM-dd") 
          .rotateSize("30m") 
          .enabled(true) 
          .encoding("UTF-8") 
          .maxBackupIndex(2); 
        Map<String,String> fileSpec = new HashMap<>(); 
        fileSpec.put("path", logFile); 
        h.file(fileSpec); 
       }).logger(GetinApp.class.getPackage().getName(),(l)->{ 
        l.level(Level.valueOf(levelName)) 
          .handler(logName); 
       });; 
     }) 
     List<String> categories = Arrays.asList(category.split(",")); 
     categories.forEach(c->{ 
      loggingFraction.logger(c.trim(),l->{ 
       l.level(Level.valueOf(levelName)).handler(logName); 
      }); 
     }); 

     return loggingFraction; 
    } 

だから私は次のようにプロジェクトstages.ymlに私自身のプロパティを宣言することができます)すべてのオプションの完全なリストについてはWildfly Swarm Reference Guideを参照してください。

swarm: 
    logging: 
    loggers: 
     com.acme.rest: 
     level: DEBUG 
-1

あなたが最後にカテゴリを追加することができる必要があります:私は順番にloggingFractionメソッドを作成し

-Dswarm.logging.com.acme.rest=DEBUG 
+0

痛い、 –

2

この目的を達成する。そのような:(あなたはログレベルを定義することができ、あなたのプロジェクトstages.yml

project-name: 
    logger: 
    level: DEBUG 
    category: com.example.com, org.anotherexample.com 
+1

OPを動作しないfoを語りますr * LoggingFraction *:「必要なものではない」 – MarianD

関連する問題