2017-07-25 12 views
0

Logging分数を設定し、カテゴリーを使用して別のファイルに特定のログを保存するための追加ハンドラーを追加しようとしました。答えはHow to log application auditing to separate file on Wildfly 8 Wildfly-Swarm Fluent APIに適応しています。Wildfly-swarm内の別のファイルにアプリケーション監査ログを設定する方法

LoggingFraction loggingFraction = new LoggingFraction() 
      .consoleHandler(level, "COLOR_PATTERN") 
      .formatter("PATTERN", "%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%t] (%c{1}) %s%e%n") 
      .formatter("COLOR_PATTERN", "%K{level}%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%t] (%c{1}) %s%e%n") 
      .formatter("AUDIT", "%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p (%c{1}) %s%e%n") 
      .periodicSizeRotatingFileHandler("FILE", h ->{ 
       h.level(level) 
         .namedFormatter("PATTERN") 
         .append(true) 
         .suffix(".yyyy-MM-dd") 
         .rotateSize(maxSize) 
         .enabled(true) 
         .encoding("UTF-8") 
         .maxBackupIndex(maxFiles); 
       Map<String,String> fileSpec = new HashMap<>(); 
       fileSpec.put("path", getLogsDirectory() + "/" + "application.log"); 
       h.file(fileSpec); 
      }) 
      .periodicSizeRotatingFileHandler("FILE_AUDIT_HANDLER", h ->{ 
       h.level(level) 
         .namedFormatter("AUDIT") 
         .append(true) 
         .suffix(".yyyy-MM-dd") 
         .rotateSize(maxSize) 
         .enabled(true) 
         .encoding("UTF-8") 
         .maxBackupIndex(maxFiles); 
         Map<String,String> fileSpec = new HashMap<>(); 
         fileSpec.put("path", getLogsDirectory() + "/" + "application-audit.log"); 
         h.file(fileSpec); 
      }) 
      .rootLogger(l -> { 
       l.level(level) 
         .handler("CONSOLE") 
         .handler("FILE") 
         ; 
      }) 
      .logger("FILE_AUDIT", l -> { 
       l.level(level) 
       .category("com.company.app.webservice") 
       .level(Level.INFO) 
       .handler("FILE_AUDIT_HANDLER") 
       ; 
      }) 
      ; 

は、その後、私はこのように、ログを追加するためのコードで通常のロガーを作成しました::

private static final Logger LOGGER_AUDIT = LoggerFactory.getLogger("com.company.app.webservice"); 
... 
LOGGER_AUDIT.info("Testing audit log") 

しかし、それは動作しません

のコードは次のようになります。
私は、カテゴリー名がロガー名と一致する必要があると仮定しています。ロガー名が 'カテゴリー名で始まる'という形で、それが含まれます。私は正しい?
私の設定に何か問題があるのか​​、ロガーがそのように使用されていないのか分かりません。

答えて

1

category属性は、レガシー属性のビットです。それが意味をなさもなければ、ロガー名は本当にカテゴリーです。あなたの例では、上記のロガーの名前はFILE_AUDITとなり、これはLogger.getLogger("FILE_AUDIT")と一致します。

次のようなものはおそらくあなたが望むものです。

LoggingFraction loggingFraction = new LoggingFraction() 
      .consoleHandler(level, "COLOR_PATTERN") 
      .formatter("PATTERN", "%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%t] (%c{1}) %s%e%n") 
      .formatter("COLOR_PATTERN", "%K{level}%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%t] (%c{1}) %s%e%n") 
      .formatter("AUDIT", "%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p (%c{1}) %s%e%n") 
      .periodicSizeRotatingFileHandler("FILE", h ->{ 
       h.level(level) 
         .namedFormatter("PATTERN") 
         .append(true) 
         .suffix(".yyyy-MM-dd") 
         .rotateSize(maxSize) 
         .enabled(true) 
         .encoding("UTF-8") 
         .maxBackupIndex(maxFiles); 
       Map<String,String> fileSpec = new HashMap<>(); 
       fileSpec.put("path", getLogsDirectory() + "/" + "application.log"); 
       h.file(fileSpec); 
      }) 
      .periodicSizeRotatingFileHandler("FILE_AUDIT_HANDLER", h ->{ 
       h.level(level) 
         .namedFormatter("AUDIT") 
         .append(true) 
         .suffix(".yyyy-MM-dd") 
         .rotateSize(maxSize) 
         .enabled(true) 
         .encoding("UTF-8") 
         .maxBackupIndex(maxFiles); 
         Map<String,String> fileSpec = new HashMap<>(); 
         fileSpec.put("path", getLogsDirectory() + "/" + "application-audit.log"); 
         h.file(fileSpec); 
      }) 
      .rootLogger(l -> { 
       l.level(level) 
         .handler("CONSOLE") 
         .handler("FILE") 
         ; 
      }) 
      .logger("com.company.app.webservice", l -> { 
       l.level(level) 
       .level(Level.INFO) 
       .handler("FILE_AUDIT_HANDLER") 
       ; 
      }) 
      ; 

注唯一の本当の変化は、カテゴリを削除する(それは読み取り専用属性だ)とcom.company.app.webserviceFILE_AUDIT名前を変えています。

+0

これは機能しました。ありがとう。 – xsilmarx

関連する問題