You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by vy...@apache.org on 2023/02/27 09:56:24 UTC
[logging-log4j2] 05/15: changes for new PatternConverter API
This is an automated email from the ASF dual-hosted git repository.
vy pushed a commit to branch scheduled-for-deletion/LOG4J2-930
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit 84bd3f91e9bfdf1f567daf346fc87c7384933330
Author: rpopma <rp...@apache.org>
AuthorDate: Mon Jan 12 17:28:50 2015 +0900
changes for new PatternConverter API
---
.../core/appender/rolling/PatternProcessor.java | 36 ++++++++++++++--------
1 file changed, 24 insertions(+), 12 deletions(-)
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/PatternProcessor.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/PatternProcessor.java
index b288510734..2a73e4aa2a 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/PatternProcessor.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/PatternProcessor.java
@@ -31,6 +31,7 @@ import org.apache.logging.log4j.core.pattern.DatePatternConverter;
import org.apache.logging.log4j.core.pattern.FormattingInfo;
import org.apache.logging.log4j.core.pattern.PatternConverter;
import org.apache.logging.log4j.core.pattern.PatternParser;
+import org.apache.logging.log4j.core.pattern.TextBuffer;
import org.apache.logging.log4j.status.StatusLogger;
/**
@@ -43,9 +44,9 @@ public class PatternProcessor {
private static final char YEAR_CHAR = 'y';
private static final char MONTH_CHAR = 'M';
- private static final char[] WEEK_CHARS = {'w', 'W'};
- private static final char[] DAY_CHARS = {'D', 'd', 'F', 'E'};
- private static final char[] HOUR_CHARS = {'H', 'K', 'h', 'k'};
+ private static final char[] WEEK_CHARS = { 'w', 'W' };
+ private static final char[] DAY_CHARS = { 'D', 'd', 'F', 'E' };
+ private static final char[] HOUR_CHARS = { 'H', 'K', 'h', 'k' };
private static final char MINUTE_CHAR = 'm';
private static final char SECOND_CHAR = 's';
private static final char MILLIS_CHAR = 'S';
@@ -60,6 +61,7 @@ public class PatternProcessor {
/**
* Constructor.
+ *
* @param pattern The file pattern.
*/
public PatternProcessor(final String pattern) {
@@ -67,10 +69,13 @@ public class PatternProcessor {
final List<PatternConverter> converters = new ArrayList<PatternConverter>();
final List<FormattingInfo> fields = new ArrayList<FormattingInfo>();
parser.parse(pattern, converters, fields, false, false);
- final FormattingInfo[] infoArray = new FormattingInfo[fields.size()];
- patternFields = fields.toArray(infoArray);
- final ArrayPatternConverter[] converterArray = new ArrayPatternConverter[converters.size()];
- patternConverters = converters.toArray(converterArray);
+ patternFields = fields.toArray(new FormattingInfo[fields.size()]);
+ patternConverters = converters.toArray(new ArrayPatternConverter[converters.size()]);
+
+ // FIXME parser.parse should just return the converter list:
+ // final PatternParser parser = createPatternParser();
+ // final List<PatternConverter> converters = parser.parse(pattern, false, false);
+ // patternConverters = converters.toArray(new ArrayPatternConverter[converters.size()]);
for (final ArrayPatternConverter converter : patternConverters) {
if (converter instanceof DatePatternConverter) {
@@ -82,6 +87,7 @@ public class PatternProcessor {
/**
* Returns the next potential rollover time.
+ *
* @param current The current time.
* @param increment The increment to the next time.
* @param modulus If true the time will be rounded to occur on a boundary aligned with the increment.
@@ -169,8 +175,10 @@ public class PatternProcessor {
private long debugGetNextTime(final long nextTime) {
if (LOGGER.isTraceEnabled()) {
- LOGGER.trace("PatternProcessor.getNextTime returning {}, nextFileTime={}, prevFileTime={}, current={}, freq={}", //
- format(nextTime), format(nextFileTime), format(prevFileTime), format(System.currentTimeMillis()), frequency);
+ LOGGER.trace(
+ "PatternProcessor.getNextTime returning {}, nextFileTime={}, prevFileTime={}, current={}, freq={}", //
+ format(nextTime), format(nextFileTime), format(prevFileTime), format(System.currentTimeMillis()),
+ frequency);
}
return nextTime;
}
@@ -180,12 +188,13 @@ public class PatternProcessor {
}
private void increment(final Calendar cal, final int type, final int increment, final boolean modulate) {
- final int interval = modulate ? increment - (cal.get(type) % increment) : increment;
+ final int interval = modulate ? increment - (cal.get(type) % increment) : increment;
cal.add(type, interval);
}
/**
* Format file name.
+ *
* @param buf string buffer to which formatted file name is appended, may not be null.
* @param obj object to be evaluated in formatting, may not be null.
*/
@@ -196,13 +205,14 @@ public class PatternProcessor {
/**
* Format file name.
+ *
* @param subst The StrSubstitutor.
* @param buf string buffer to which formatted file name is appended, may not be null.
* @param obj object to be evaluated in formatting, may not be null.
*/
public final void formatFileName(final StrSubstitutor subst, final StringBuilder buf, final Object obj) {
// LOG4J2-628: we deliberately use System time, not the log4j.Clock time
- // for creating the file name of rolled-over files.
+ // for creating the file name of rolled-over files.
final long time = prevFileTime == 0 ? System.currentTimeMillis() : prevFileTime;
formatFileName(buf, new Date(time), obj);
final LogEvent event = new Log4jLogEvent(time);
@@ -213,13 +223,15 @@ public class PatternProcessor {
/**
* Format file name.
+ *
* @param buf string buffer to which formatted file name is appended, may not be null.
* @param objects objects to be evaluated in formatting, may not be null.
*/
protected final void formatFileName(final StringBuilder buf, final Object... objects) {
+ TextBuffer buffer = new TextBuffer(buf);
for (int i = 0; i < patternConverters.length; i++) {
final int fieldStart = buf.length();
- patternConverters[i].format(buf, objects);
+ patternConverters[i].format(buffer, objects);
if (patternFields[i] != null) {
patternFields[i].format(fieldStart, buf);