1

Wildfly Swarm ベースのアプリケーションを開発する場合、project-stages.yml から使用できるプロパティを使用してログ レベルを構成するにはどうすればよいですか?

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

現在、私はそれを知っています:

  • 「swarm.logging=DEBUG」を使用して、すべてのログレベルを構成できます (必要なものではありません)
  • 「standalone.xml」を使用することもできますが、ops フレンドリーではありません
  • LoggingFraction を使用して、ログ レベルをプログラムで構成できます (これも必要なものではありません)。
  • ドキュメントには「logging.level」も記載されていますが、これまでのところ機能させることができませんでした

お時間をいただきありがとうございます

4

3 に答える 3

2

この目的を達成するために、loggingFraction メソッドを作成しました。そのように:

 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;
    }

したがって、次のようにproject-stages.ymlで独自のプロパティを宣言できます。

project-name:
  logger:
    level: DEBUG
    category: com.example.com, org.anotherexample.com
于 2016-12-02T18:12:52.047 に答える
-1

最後にカテゴリを追加できるはずです。

-Dswarm.logging.com.acme.rest=DEBUG
于 2016-11-17T15:46:20.977 に答える