[ 
https://issues.apache.org/jira/browse/LOG4J2-3627?focusedWorklogId=924400&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-924400
 ]

ASF GitHub Bot logged work on LOG4J2-3627:
------------------------------------------

                Author: ASF GitHub Bot
            Created on: 03/Jul/24 14:26
            Start Date: 03/Jul/24 14:26
    Worklog Time Spent: 10m 
      Work Description: alan0428a commented on code in PR #2691:
URL: https://github.com/apache/logging-log4j2/pull/2691#discussion_r1664285750


##########
src/changelog/.2.x.x/fix_throwable_converter_issues.xml:
##########
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<entry xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xmlns="https://logging.apache.org/xml/ns";
+       xsi:schemaLocation="https://logging.apache.org/xml/ns 
https://logging.apache.org/xml/ns/log4j-changelog-0.xsd";
+       type="fixed">
+    <issue id="2691" 
link="https://github.com/apache/logging-log4j2/pull/2691"/>
+    <description format="asciidoc">
+        Resolved the lack of support for "filters" in the %ex pattern and 
"depth" in the %xEx pattern.

Review Comment:
   updated



##########
log4j-core-test/src/test/java/org/apache/logging/log4j/core/pattern/ThrowableTest.java:
##########
@@ -16,41 +16,109 @@
  */
 package org.apache.logging.log4j.core.pattern;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.assertj.core.api.Assertions.assertThat;
 
-import java.util.List;
+import java.util.stream.Stream;
+import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.core.config.Configuration;
+import org.apache.logging.log4j.core.config.Configurator;
+import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilder;
+import 
org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFactory;
+import org.apache.logging.log4j.core.config.builder.impl.BuiltConfiguration;
 import org.apache.logging.log4j.core.test.appender.ListAppender;
-import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
-import org.apache.logging.log4j.core.test.junit.Named;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
 
 /**
- * Unit tests for {@code throwable} pattern.
+ * Unit tests for {@code throwable}, {@code rThrowable} and {@code xThrowable} 
pattern.
  */
-@LoggerContextSource("log4j-throwable.xml")
 public class ThrowableTest {
-    private ListAppender app;
-    private Logger logger;
+    static Stream<Arguments> testConverter_dataSource() {
+        final String filters = 
"org.junit,org.apache.maven,sun.reflect,java.lang.reflect";
+        final Integer depth = 5;
+        return Stream.of(
+                // Throwable
+                Arguments.of("%ex", filters, null),
+                Arguments.of("%ex", null, depth),
+                // RootThrowable
+                Arguments.of("%rEx", filters, null),
+                Arguments.of("%rEx", null, depth),
+                // ExtendedThrowable
+                Arguments.of("%xEx", filters, null),
+                Arguments.of("%xEx", null, depth));
+    }
+
+    @ParameterizedTest
+    @MethodSource("testConverter_dataSource")
+    void testConverter(String exceptionPattern, String filters, Integer depth) 
{
+        final String pattern = buildPattern(exceptionPattern, filters, depth);
+        final ConfigurationBuilder<BuiltConfiguration> configBuilder =
+                ConfigurationBuilderFactory.newConfigurationBuilder();
+
+        final String appenderName = "LIST";
+        final Configuration config = configBuilder
+                .add(configBuilder
+                        .newAppender(appenderName, "List")
+                        
.add(configBuilder.newLayout("PatternLayout").addAttribute("pattern", pattern)))
+                
.add(configBuilder.newRootLogger(Level.ALL).add(configBuilder.newAppenderRef(appenderName)))
+                .build(false);
+
+        try (final LoggerContext loggerContext = 
Configurator.initialize(config)) {
+            // Restart logger context after first test run
+            if (loggerContext.isStopped()) {
+                loggerContext.start();
+                loggerContext.reconfigure(config);
+            }
+            final Throwable cause = new NullPointerException("null pointer");
+            final Throwable parent = new 
IllegalArgumentException("IllegalArgument", cause);
+
+            final Logger logger = loggerContext.getLogger("LoggerTest");

Review Comment:
   updated





Issue Time Tracking
-------------------

    Worklog Id:     (was: 924400)
    Time Spent: 4h  (was: 3h 50m)

> PatternLayout: %xEx{ [ "short" | depth]} not working
> ----------------------------------------------------
>
>                 Key: LOG4J2-3627
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-3627
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Layouts
>    Affects Versions: 2.11.0, 2.11.1, 2.11.2, 2.12.0, 2.12.1, 2.13.0, 2.13.1, 
> 2.13.2, 2.14.0, 2.13.3, 2.14.1, 2.15.0, 2.16.0, 2.17.1, 2.17.0, 2.12.3, 
> 2.12.2, 2.18.0, 2.12.4, 2.17.2, 2.19.0
>            Reporter: Thorsten Heit
>            Assignee: Volkan Yazici
>            Priority: Minor
>          Time Spent: 4h
>  Remaining Estimate: 0h
>
> According to the documentation the patterns {{{}%xEx{short{}}}} or 
> {{{}%xEx{<num>{}}}} should limit the number of lines of a stack trace that is 
> logged. This doesn't work; instead, the complete stack trace is logged 
> (always!). This is in contrary to the patterns {{%ex}} or {{%rEx}} where this 
> works.
> In commit 9ff63b2e50be754ae394feda2c33d9e64fd0ab3a (2018-01-25) a change was 
> implemented because of LOG4J2-2195 (according to the commit message) that 
> removed the option of limiting the number of lines to output.
> Therefore all versions since 2.11.0 should be affected.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to