[
https://issues.apache.org/jira/browse/LOG4J2-3627?focusedWorklogId=924399&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-924399
]
ASF GitHub Bot logged work on LOG4J2-3627:
------------------------------------------
Author: ASF GitHub Bot
Created on: 03/Jul/24 14:25
Start Date: 03/Jul/24 14:25
Worklog Time Spent: 10m
Work Description: alan0428a commented on code in PR #2691:
URL: https://github.com/apache/logging-log4j2/pull/2691#discussion_r1664285290
##########
log4j-core/src/main/java/org/apache/logging/log4j/core/util/internal/StringBuilders.java:
##########
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.logging.log4j.core.util.internal;
+
+import java.util.Objects;
+
+/**
+ * StringBuilder helpers
+ */
+public class StringBuilders {
+
+ /**
+ * Truncates the content of the given {@code StringBuilder} to the
specified maximum number of lines.
+ *
+ * <p>If {@code maxOccurrenceCount} is {@link Integer#MAX_VALUE}, or if
{@code delimiter} is empty,
+ * the method returns without making any changes to the {@code
StringBuilder}.
+ *
+ * @param buffer the {@code StringBuilder} whose content is to
be truncated
+ * @param delimiter the delimiter used to determine the end of a line
+ * @param maxOccurrenceCount the maximum number of lines to retain in
the {@code StringBuilder};
+ * if this value is {@link Integer#MAX_VALUE}, no
truncation will occur
+ */
+ public static void truncateAfterDelimiter(
+ final StringBuilder buffer, final String delimiter, final int
maxOccurrenceCount) {
+ Objects.requireNonNull(buffer, "buffer");
+ Objects.requireNonNull(delimiter, "delimiter");
+ if (maxOccurrenceCount < 0) {
+ throw new IllegalArgumentException("maxOccurrenceCount should not
be negative");
Review Comment:
updated
##########
log4j-core/src/main/java/org/apache/logging/log4j/core/util/internal/StringBuilders.java:
##########
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.logging.log4j.core.util.internal;
+
+import java.util.Objects;
+
+/**
+ * StringBuilder helpers
+ */
+public class StringBuilders {
+
+ /**
+ * Truncates the content of the given {@code StringBuilder} to the
specified maximum number of lines.
+ *
+ * <p>If {@code maxOccurrenceCount} is {@link Integer#MAX_VALUE}, or if
{@code delimiter} is empty,
+ * the method returns without making any changes to the {@code
StringBuilder}.
+ *
+ * @param buffer the {@code StringBuilder} whose content is to
be truncated
+ * @param delimiter the delimiter used to determine the end of a line
+ * @param maxOccurrenceCount the maximum number of lines to retain in
the {@code StringBuilder};
+ * if this value is {@link Integer#MAX_VALUE}, no
truncation will occur
Review Comment:
updated
Issue Time Tracking
-------------------
Worklog Id: (was: 924399)
Time Spent: 3h 50m (was: 3h 40m)
> 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: 3h 50m
> 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)