我想在我的.yml
日志中打印log4j
文件中提供的应用程序名称
我的log4j
模式是
LOG_PATTERN=[%d{yyyy-MM-dd HH:mm:ss.SSS}] boot%X{context} - ${PID} ${LOG_LEVEL_PATTERN} [%t] --- %c{1}: %m%n
目前我正在获取
等日志2017-09-16 15:53:35.687 INFO 18302 --- [ restartedMain] mc.n.e.EurekaDiscoveryClientConfiguration : My Log print statement
我希望我的日志打印的格式
2017-09-16 15:53:35.687 INFO 18302 --- [**APPLICATION_NAME**] [ restartedMain] mc.n.e.EurekaDiscoveryClientConfiguration : My Log print statement
如何将应用程序名称放在log4j
日志
答案 0 :(得分:0)
假设这是一个Web应用程序,您可以使用过滤器和MDC。
参见示例:
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