2016-09-28 63 views
1

我使用log4j2这个2间的依赖关系:log4j2异常处理工作不

<dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-core</artifactId> 
     <version>2.6.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-1.2-api</artifactId> 
     <version>2.6.2</version> 
    </dependency> 

当我试着使用像一个抛出来登录,例如一个错误:使用的PatternLayout

import org.apache.logging.log4j.LogManager; 
import org.apache.logging.log4j.Logger; 
import org.testng.annotations.Test; 

public class Test { 

private static final Logger logger = LogManager.getLogger(Test.class); 

@Test 
public void testSendMessage() throws Exception { 
    Exception exception = new Exception("some exception"); 
    logger.error("error with exception", exception); 
} 
} 

<Configuration> 
<properties> 
    <property name="filters">org.testng,org.apache.maven,sun.reflect,java.lang.reflect</property> 
</properties> 

<Appenders> 
<Console name="ConsoleAppender" target="SYSTEM_OUT" direct="true"> 
      <PatternLayout pattern="%maxLen{%d{DEFAULT} [%p] %c{-3}:%L - %enc{%m} %xEx{filters(${filters})}%n}{200}"/> 
     </Console> 
</Appenders> 

<Loggers> 
    <logger name="my.test.class.path" level="trace" additivity="false"> 
     <AppenderRef ref="ConsoleAppender" /> 
    </logger> 
</Loggers> 
</Configuration> 

然后过滤的包不会从堆栈跟踪中消失,我甚至不能在任何w中操纵堆栈跟踪像最大化线:

%xEx{5} 

突出显示也不在日食或Kibana(ELK环境)中工作。

任何人都可以帮忙吗?

+0

我有同样的问题 –

回答

0

难道是%xEx PatternLayout转换器在其选项中不支持属性替换吗?

如果将要过滤的包直接放在过滤器列表中怎么办?

为此,在Log4j 2问题跟踪器上提出一个Jira票证是值得的。

+0

的例子是绝对从log4j2文档站点复制: https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout 筛选将Throwable部分 直接打包列表不起作用%xEx {filters(org.testng,org.apache.maven,sun.reflect,java.lang.reflect)} – Zoltan

+0

然后您可能发现了一个错误。请在Log4j 2问题跟踪器上提出此问题。 –

+0

举报:https://issues.apache.org/jira/browse/LOG4J2-1617 – Zoltan