You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "Thomas Deutsch (JIRA)" <ji...@apache.org> on 2018/11/13 21:44:00 UTC

[jira] [Commented] (LOG4J2-1617) PatternLayout Exception handling with filter

    [ https://issues.apache.org/jira/browse/LOG4J2-1617?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16685765#comment-16685765 ] 

Thomas Deutsch commented on LOG4J2-1617:
----------------------------------------

I just want to note that i had a similar issue. I wanted to configure some sub parameters using  `%xEx` and i think there is a problem combining more than one param. 

This is working: `%xEx\{filters(${exfilters})}` (substitution works!)

but if i add another option like `separator` it stops working. 

I checked version 2.8.1 and 2.9.1 

thank you for your great work!

> PatternLayout Exception handling with filter
> --------------------------------------------
>
>                 Key: LOG4J2-1617
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1617
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Layouts, Pattern Converters
>    Affects Versions: 2.6.2
>         Environment: Eclipse mars 4.5.2
> jdk 1.8.77
> mvn 3.2.1
> testng 6.9.10
>            Reporter: Zoltán Nébli
>            Priority: Major
>
> I am using log4j2 with this 2 dependencies:
>     <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>
> When I try to log for example an error with a throwable like:
> 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);
> }
> }
> using patternlayout:
> <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>
> Then the filtered packages won't disappear from the stacktrace, I can't even manipulate the stacktrace in any way like maximizing the lines:
> %xEx{5}
> Output:
> 2016-09-28 16:16:08,912 [ERROR] myClasspath.Test:20 - error with exception java.lang.Exception: some exception
> 	at myClasspath.Test... java.lang.Exception: some exception
> 	at myClasspath.Test.testSendMessage(Test.java:19) [test-classes/:?]
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_79]
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_79]
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_79]
> 	at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_79]
> 	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:86) [testng-6.9.10.jar:?]
> 	at org.testng.internal.MethodInvocationHelper$1.runTestMethod(MethodInvocationHelper.java:197) [testng-6.9.10.jar:?]
> 	at org.springframework.test.context.testng.AbstractTestNGSpringContextTests.run(AbstractTestNGSpringContextTests.java:175) [spring-test-4.2.3.RELEASE.jar:4.2.3.RELEASE]
> 	at org.testng.internal.MethodInvocationHelper.invokeHookable(MethodInvocationHelper.java:209) [testng-6.9.10.jar:?]
> 	at org.testng.internal.Invoker.invokeMethod(Invoker.java:639) [testng-6.9.10.jar:?]
> 	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:820) [testng-6.9.10.jar:?]
> 	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1128) [testng-6.9.10.jar:?]
> 	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129) [testng-6.9.10.jar:?]
> 	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112) [testng-6.9.10.jar:?]
> 	at org.testng.TestRunner.privateRun(TestRunner.java:782) [testng-6.9.10.jar:?]
> 	at org.testng.TestRunner.run(TestRunner.java:632) [testng-6.9.10.jar:?]
> 	at org.testng.SuiteRunner.runTest(SuiteRunner.java:366) [testng-6.9.10.jar:?]
> 	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361) [testng-6.9.10.jar:?]
> 	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:319) [testng-6.9.10.jar:?]
> 	at org.testng.SuiteRunner.run(SuiteRunner.java:268) [testng-6.9.10.jar:?]
> 	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) [testng-6.9.10.jar:?]
> 	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) [testng-6.9.10.jar:?]
> 	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1244) [testng-6.9.10.jar:?]
> 	at org.testng.TestNG.runSuitesLocally(TestNG.java:1169) [testng-6.9.10.jar:?]
> 	at org.testng.TestNG.run(TestNG.java:1064) [testng-6.9.10.jar:?]
> 	at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:113) [testng-6.9.10.jar:?]
> 	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:206) [testng-6.9.10.jar:?]
> 	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:177) [testng-6.9.10.jar:?]
> PASSED: testSendMessage



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)