2017-09-16 6 views
0

私は私のlog4jパターンは、現在、私はすべてのログステートメントで.ymlファイルで提供されているアプリケーション名の印刷方法は?

2017-09-16 15:53:35.687 INFO 18302 --- [ restartedMain] mc.n.e.EurekaDiscoveryClientConfiguration : My Log print statement 

私は私のログをしたい形式などのログを取得しています

LOG_PATTERN=[%d{yyyy-MM-dd HH:mm:ss.SSS}] boot%X{context} - ${PID} ${LOG_LEVEL_PATTERN} [%t] --- %c{1}: %m%n 

である私のlog4jログ

.ymlファイルで提供自分のアプリケーション名を印刷したいです印刷する

2017-09-16 15:53:35.687 INFO 18302 --- [**APPLICATION_NAME**] [ restartedMain] mc.n.e.EurekaDiscoveryClientConfiguration : My Log print statement 

はどのように私は、これは、Webアプリケーションで、あなたはフィルターとMDCを使用することができると仮定すると、log4jログにそこに

答えて

0

をアプリケーション名を置くことができます。

は、例を参照してください:

public class MDCFilter implements Filter { 
    @Override 
    public void doFilter(ServletRequest request, ServletResponse response, 
      FilterChain chain) throws IOException, ServletException { 
     try { 
      MDC.put("appName", "**APPLICATION_NAME**"); 
      chain.doFilter(request, response); 
     } finally { 
      MDC.remove("appName"); 
     } 
    } 
} 

フィルターは、上記MDCにアプリの名前を入れますと、あなたはアプリの名前を印刷するログのパターンを使用することができます。以下のログ・パターンに基づいて

、参照修正:

%d{yyyy-MM-dd HH:mm:ss.SSS} boot%X{context} - ${PID} ${LOG_LEVEL_PATTERN} [%t] --- [%X{appName}%n] %c{1}: %m%n 

注:%X{appName}%nフィルターに入れたものを出力MDC.put("appName", "**APPLICATION_NAME**");

上記の意志の出力以下になります。

2017-09-16 15:53:35.687 INFO 18302 --- [**APPLICATION_NAME**] [ restartedMain] mc.n.e.EurekaDiscoveryClientConfiguration : My Log print statement 
関連する問題