You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gg...@apache.org on 2016/08/26 17:05:32 UTC
[04/10] logging-log4j2 git commit: [LOG4J2-1540] The Core
AbstractManager should track its LoggerContext. All appenders created with a
Configuration object in their respective factories now pass that
configuration's logger context to the managers they cr
[LOG4J2-1540] The Core AbstractManager should track its LoggerContext.
All appenders created with a Configuration object in their respective
factories now pass that configuration's logger context to the managers
they create. If an appender is not given a Configuration, it cannot set
the logger context for its manager and it will be null.
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/72259095
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/72259095
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/72259095
Branch: refs/heads/LOG4J2-1539
Commit: 722590956277af42d00089c67ca72a52c446a7b4
Parents: da5d6f3
Author: Gary Gregory <gg...@apache.org>
Authored: Fri Aug 26 08:08:10 2016 -0700
Committer: Gary Gregory <gg...@apache.org>
Committed: Fri Aug 26 08:08:10 2016 -0700
----------------------------------------------------------------------
.../log4j/core/appender/AbstractManager.java | 17 ++++++-
.../core/appender/ConfigurationFactoryData.java | 50 ++++++++++++++++++++
.../log4j/core/appender/FileAppender.java | 12 ++---
.../log4j/core/appender/FileManager.java | 30 +++++++-----
.../core/appender/OutputStreamManager.java | 12 ++---
.../core/appender/RandomAccessFileAppender.java | 2 +-
.../core/appender/RandomAccessFileManager.java | 27 ++++++-----
.../core/appender/RollingFileAppender.java | 16 +++----
.../RollingRandomAccessFileAppender.java | 2 +-
.../log4j/core/appender/WriterManager.java | 2 +-
.../appender/db/AbstractDatabaseManager.java | 2 +-
.../log4j/core/appender/mom/JmsManager.java | 2 +-
.../core/appender/mom/jeromq/JeroMqManager.java | 2 +-
.../core/appender/mom/kafka/KafkaManager.java | 2 +-
.../appender/rolling/RollingFileManager.java | 35 +++++++-------
.../rolling/RollingRandomAccessFileManager.java | 32 ++++++++-----
.../logging/log4j/core/net/JndiManager.java | 2 +-
.../logging/log4j/core/net/SmtpManager.java | 2 +-
.../appender/RandomAccessFileManagerTest.java | 18 +++----
.../rolling/OnStartupTriggeringPolicyTest.java | 2 +-
.../RollingRandomAccessFileManagerTest.java | 24 +++++-----
.../flume/appender/AbstractFlumeManager.java | 2 +-
src/changes/changes.xml | 3 ++
23 files changed, 192 insertions(+), 106 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/72259095/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractManager.java
index 4c78e7f..4d7fc69 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractManager.java
@@ -23,6 +23,7 @@ import java.util.concurrent.locks.ReentrantLock;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.message.Message;
import org.apache.logging.log4j.status.StatusLogger;
@@ -48,8 +49,11 @@ public abstract class AbstractManager {
protected int count;
private final String name;
+
+ private final LoggerContext loggerContext;
- protected AbstractManager(final String name) {
+ protected AbstractManager(final LoggerContext loggerContext, final String name) {
+ this.loggerContext = loggerContext;
this.name = name;
LOGGER.debug("Starting {} {}", this.getClass().getSimpleName(), name);
}
@@ -117,6 +121,17 @@ public abstract class AbstractManager {
}
/**
+ * Gets the logger context used to create this instance or null. The logger context is usually set when an appender
+ * creates a manager and that appender is given a Configuration. Not all appenders are given a Configuration by
+ * their factory method or builder.
+ *
+ * @return the logger context used to create this instance or null.
+ */
+ public LoggerContext getLoggerContext() {
+ return loggerContext;
+ }
+
+ /**
* Called to signify that this Manager is no longer required by an Appender.
*/
public void release() {
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/72259095/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/ConfigurationFactoryData.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/ConfigurationFactoryData.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/ConfigurationFactoryData.java
new file mode 100644
index 0000000..e2c20d4
--- /dev/null
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/ConfigurationFactoryData.java
@@ -0,0 +1,50 @@
+/*
+ * 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.appender;
+
+import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.core.config.Configuration;
+
+/**
+ * Factory Data that carries a configuration.
+ */
+public class ConfigurationFactoryData {
+
+ /**
+ * This field is public to follow the style of existing FactoryData classes.
+ */
+ public final Configuration configuration;
+
+ public ConfigurationFactoryData(Configuration configuration) {
+ super();
+ this.configuration = configuration;
+ }
+
+ public Configuration getConfiguration() {
+ return configuration;
+ }
+
+ /**
+ * Gets the LoggerContext from the Configuration or null.
+ *
+ * @return the LoggerContext from the Configuration or null.
+ */
+ public LoggerContext getLoggerContext() {
+ return configuration != null ? configuration.getLoggerContext() : null;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/72259095/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileAppender.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileAppender.java
index 736714d..b42f9da 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileAppender.java
@@ -73,7 +73,7 @@ public final class FileAppender extends AbstractOutputStreamAppender<FileManager
private boolean createOnDemand;
@PluginConfiguration
- private Configuration config;
+ private Configuration configuration;
@Override
public FileAppender build() {
@@ -87,13 +87,13 @@ public final class FileAppender extends AbstractOutputStreamAppender<FileManager
Layout<? extends Serializable> layout = getOrCreateLayout();
final FileManager manager = FileManager.getFileManager(fileName, append, locking, bufferedIo, createOnDemand,
- advertiseUri, layout, bufferSize, isImmediateFlush());
+ advertiseUri, layout, bufferSize, isImmediateFlush(), configuration);
if (manager == null) {
return null;
}
return new FileAppender(getName(), layout, getFilter(), manager, fileName, isIgnoreExceptions(),
- !bufferedIo || isImmediateFlush(), advertise ? config.getAdvertiser() : null);
+ !bufferedIo || isImmediateFlush(), advertise ? configuration.getAdvertiser() : null);
}
public String getAdvertiseUri() {
@@ -104,8 +104,8 @@ public final class FileAppender extends AbstractOutputStreamAppender<FileManager
return bufferSize;
}
- public Configuration getConfig() {
- return config;
+ public Configuration getConfiguration() {
+ return configuration;
}
public String getFileName() {
@@ -158,7 +158,7 @@ public final class FileAppender extends AbstractOutputStreamAppender<FileManager
}
public B withConfiguration(final Configuration config) {
- this.config = config;
+ this.configuration = config;
return asBuilder();
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/72259095/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java
index 2b9024b..33a2300 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java
@@ -29,6 +29,8 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.logging.log4j.core.Layout;
+import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.core.config.Configuration;
import org.apache.logging.log4j.core.util.Constants;
@@ -72,13 +74,12 @@ public class FileManager extends OutputStreamManager {
}
/**
- * @throws IOException
* @since 2.7
*/
- protected FileManager(final String fileName, final OutputStream os, final boolean append, final boolean locking, final boolean createOnDemand,
- final String advertiseURI, final Layout<? extends Serializable> layout, final boolean writeHeader,
- final ByteBuffer buffer) throws IOException {
- super(os, fileName, createOnDemand, layout, writeHeader, buffer);
+ protected FileManager(LoggerContext loggerContext, final String fileName, final OutputStream os, final boolean append, final boolean locking,
+ final boolean createOnDemand, final String advertiseURI, final Layout<? extends Serializable> layout,
+ final boolean writeHeader, final ByteBuffer buffer) {
+ super(loggerContext, os, fileName, createOnDemand, layout, writeHeader, buffer);
this.isAppend = append;
this.createOnDemand = createOnDemand;
this.isLocking = locking;
@@ -97,18 +98,19 @@ public class FileManager extends OutputStreamManager {
* @param layout The layout
* @param bufferSize buffer size for buffered IO
* @param immediateFlush true if the contents should be flushed on every write, false otherwise.
+ * @param configuration The configuration.
* @return A FileManager for the File.
*/
public static FileManager getFileManager(final String fileName, final boolean append, boolean locking,
final boolean bufferedIo, final boolean createOnDemand, final String advertiseUri,
- final Layout<? extends Serializable> layout, final int bufferSize, final boolean immediateFlush) {
+ final Layout<? extends Serializable> layout, final int bufferSize, final boolean immediateFlush,
+ Configuration configuration) {
if (locking && bufferedIo) {
locking = false;
}
- return (FileManager) getManager(fileName,
- new FactoryData(append, locking, bufferedIo, bufferSize, immediateFlush, createOnDemand, advertiseUri, layout),
- FACTORY);
+ return (FileManager) getManager(fileName, new FactoryData(append, locking, bufferedIo, bufferSize,
+ immediateFlush, createOnDemand, advertiseUri, layout, configuration), FACTORY);
}
@Override
@@ -198,7 +200,7 @@ public class FileManager extends OutputStreamManager {
/**
* Factory Data.
*/
- private static class FactoryData {
+ private static class FactoryData extends ConfigurationFactoryData {
private final boolean append;
private final boolean locking;
private final boolean bufferedIO;
@@ -218,10 +220,12 @@ public class FileManager extends OutputStreamManager {
* @param createOnDemand if you want to lazy-create the file (a.k.a. on-demand.)
* @param advertiseURI the URI to use when advertising the file
* @param layout The layout
+ * @param configuration the configuration
*/
public FactoryData(final boolean append, final boolean locking, final boolean bufferedIO, final int bufferSize,
final boolean immediateFlush, final boolean createOnDemand, final String advertiseURI,
- final Layout<? extends Serializable> layout) {
+ final Layout<? extends Serializable> layout, Configuration configuration) {
+ super(configuration);
this.append = append;
this.locking = locking;
this.bufferedIO = bufferedIO;
@@ -257,8 +261,8 @@ public class FileManager extends OutputStreamManager {
final int actualSize = data.bufferedIO ? data.bufferSize : Constants.ENCODER_BYTE_BUFFER_SIZE;
final ByteBuffer buffer = ByteBuffer.wrap(new byte[actualSize]);
final FileOutputStream fos = data.createOnDemand ? null : new FileOutputStream(file, data.append);
- return new FileManager(name, fos, data.append, data.locking, data.createOnDemand, data.advertiseURI, data.layout,
- writeHeader, buffer);
+ return new FileManager(data.getLoggerContext(), name, fos, data.append, data.locking,
+ data.createOnDemand, data.advertiseURI, data.layout, writeHeader, buffer);
} catch (final IOException ex) {
LOGGER.error("FileManager (" + name + ") " + ex, ex);
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/72259095/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamManager.java
index e5960ee..698409a 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamManager.java
@@ -23,6 +23,7 @@ import java.nio.ByteBuffer;
import java.util.Objects;
import org.apache.logging.log4j.core.Layout;
+import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.layout.ByteBufferDestination;
import org.apache.logging.log4j.core.util.Constants;
@@ -49,7 +50,7 @@ public class OutputStreamManager extends AbstractManager implements ByteBufferDe
@Deprecated
protected OutputStreamManager(final OutputStream os, final String streamName, final Layout<?> layout,
final boolean writeHeader, final ByteBuffer byteBuffer) {
- super(streamName);
+ super(null, streamName);
this.os = os;
this.layout = layout;
if (writeHeader && layout != null) {
@@ -66,13 +67,12 @@ public class OutputStreamManager extends AbstractManager implements ByteBufferDe
}
/**
- * @throws IOException
* @since 2.7
*/
- protected OutputStreamManager(OutputStream os, final String streamName, final boolean createOnDemand,
- final Layout<? extends Serializable> layout, final boolean writeHeader, final ByteBuffer byteBuffer)
- throws IOException {
- super(streamName);
+ protected OutputStreamManager(final LoggerContext loggerContext, OutputStream os, final String streamName,
+ final boolean createOnDemand, final Layout<? extends Serializable> layout, final boolean writeHeader,
+ final ByteBuffer byteBuffer) {
+ super(loggerContext, streamName);
if (createOnDemand && os != null) {
LOGGER.error(
"Invalid OutputStreamManager configuration for '{}': You cannot both set the OutputStream and request on-demand.",
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/72259095/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java
index 738816d..543c702 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java
@@ -164,7 +164,7 @@ public final class RandomAccessFileAppender extends AbstractOutputStreamAppender
layout = PatternLayout.createDefaultLayout();
}
final RandomAccessFileManager manager = RandomAccessFileManager.getFileManager(
- fileName, isAppend, isFlush, bufferSize, advertiseURI, layout
+ fileName, isAppend, isFlush, bufferSize, advertiseURI, layout, null
);
if (manager == null) {
return null;
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/72259095/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileManager.java
index c87bdf3..7ab0fe3 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileManager.java
@@ -26,6 +26,8 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.logging.log4j.core.Layout;
+import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.core.config.Configuration;
import org.apache.logging.log4j.core.util.NullOutputStream;
/**
@@ -42,10 +44,10 @@ public class RandomAccessFileManager extends OutputStreamManager {
private final RandomAccessFile randomAccessFile;
private final ThreadLocal<Boolean> isEndOfBatch = new ThreadLocal<>();
- protected RandomAccessFileManager(final RandomAccessFile file,
- final String fileName, final OutputStream os, final int bufferSize,
- final String advertiseURI, final Layout<? extends Serializable> layout, final boolean writeHeader) {
- super(os, fileName, layout, writeHeader, ByteBuffer.wrap(new byte[bufferSize]));
+ protected RandomAccessFileManager(LoggerContext loggerContext, final RandomAccessFile file, final String fileName,
+ final OutputStream os, final int bufferSize, final String advertiseURI,
+ final Layout<? extends Serializable> layout, final boolean writeHeader) {
+ super(loggerContext, os, fileName, false, layout, writeHeader, ByteBuffer.wrap(new byte[bufferSize]));
this.randomAccessFile = file;
this.advertiseURI = advertiseURI;
this.isEndOfBatch.set(Boolean.FALSE);
@@ -62,13 +64,14 @@ public class RandomAccessFileManager extends OutputStreamManager {
* @param bufferSize The buffer size.
* @param advertiseURI the URI to use when advertising the file
* @param layout The layout.
+ * @param configuration The configuration.
* @return A RandomAccessFileManager for the File.
*/
public static RandomAccessFileManager getFileManager(final String fileName, final boolean append,
final boolean isFlush, final int bufferSize, final String advertiseURI,
- final Layout<? extends Serializable> layout) {
+ final Layout<? extends Serializable> layout, Configuration configuration) {
return (RandomAccessFileManager) getManager(fileName, new FactoryData(append,
- isFlush, bufferSize, advertiseURI, layout), FACTORY);
+ isFlush, bufferSize, advertiseURI, layout, configuration), FACTORY);
}
public Boolean isEndOfBatch() {
@@ -140,7 +143,7 @@ public class RandomAccessFileManager extends OutputStreamManager {
/**
* Factory Data.
*/
- private static class FactoryData {
+ private static class FactoryData extends ConfigurationFactoryData {
private final boolean append;
private final boolean immediateFlush;
private final int bufferSize;
@@ -152,9 +155,11 @@ public class RandomAccessFileManager extends OutputStreamManager {
*
* @param append Append status.
* @param bufferSize size of the buffer
+ * @param configuration The configuration.
*/
- public FactoryData(final boolean append, final boolean immediateFlush,
- final int bufferSize, final String advertiseURI, final Layout<? extends Serializable> layout) {
+ public FactoryData(final boolean append, final boolean immediateFlush, final int bufferSize,
+ final String advertiseURI, final Layout<? extends Serializable> layout, Configuration configuration) {
+ super(configuration);
this.append = append;
this.immediateFlush = immediateFlush;
this.bufferSize = bufferSize;
@@ -197,8 +202,8 @@ public class RandomAccessFileManager extends OutputStreamManager {
} else {
raf.setLength(0);
}
- return new RandomAccessFileManager(raf, name, os,
- data.bufferSize, data.advertiseURI, data.layout, writeHeader);
+ return new RandomAccessFileManager(data.getLoggerContext(), raf, name,
+ os, data.bufferSize, data.advertiseURI, data.layout, writeHeader);
} catch (final Exception ex) {
LOGGER.error("RandomAccessFileManager (" + name + ") " + ex, ex);
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/72259095/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingFileAppender.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingFileAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingFileAppender.java
index 899ddca..f8f66f2 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingFileAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingFileAppender.java
@@ -94,7 +94,7 @@ public final class RollingFileAppender extends AbstractOutputStreamAppender<Roll
private boolean createOnDemand;
@PluginConfiguration
- private Configuration config;
+ private Configuration configuration;
@Override
public RollingFileAppender build() {
@@ -126,17 +126,17 @@ public final class RollingFileAppender extends AbstractOutputStreamAppender<Roll
if (strategy == null) {
strategy = DefaultRolloverStrategy.createStrategy(null, null, null,
- String.valueOf(Deflater.DEFAULT_COMPRESSION), null, true, config);
+ String.valueOf(Deflater.DEFAULT_COMPRESSION), null, true, configuration);
}
if (strategy == null) {
strategy = DefaultRolloverStrategy.createStrategy(null, null, null,
- String.valueOf(Deflater.DEFAULT_COMPRESSION), null, true, config);
+ String.valueOf(Deflater.DEFAULT_COMPRESSION), null, true, configuration);
}
final RollingFileManager manager = RollingFileManager.getFileManager(fileName, filePattern, append,
bufferedIo, policy, strategy, advertiseUri, getLayout(), bufferSize, isImmediateFlush(),
- createOnDemand);
+ createOnDemand, configuration);
if (manager == null) {
return null;
}
@@ -144,7 +144,7 @@ public final class RollingFileAppender extends AbstractOutputStreamAppender<Roll
manager.initialize();
return new RollingFileAppender(getName(), getLayout(), getFilter(), manager, fileName, filePattern,
- isIgnoreExceptions(), isImmediateFlush(), advertise ? config.getAdvertiser() : null);
+ isIgnoreExceptions(), isImmediateFlush(), advertise ? configuration.getAdvertiser() : null);
}
public String getAdvertiseUri() {
@@ -155,8 +155,8 @@ public final class RollingFileAppender extends AbstractOutputStreamAppender<Roll
return bufferSize;
}
- public Configuration getConfig() {
- return config;
+ public Configuration getConfiguration() {
+ return configuration;
}
public String getFileName() {
@@ -209,7 +209,7 @@ public final class RollingFileAppender extends AbstractOutputStreamAppender<Roll
}
public B withConfiguration(final Configuration config) {
- this.config = config;
+ this.configuration = config;
return asBuilder();
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/72259095/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java
index 67777e6..5e6f9c7 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java
@@ -205,7 +205,7 @@ public final class RollingRandomAccessFileAppender extends AbstractOutputStreamA
}
final RollingRandomAccessFileManager manager = RollingRandomAccessFileManager.getRollingRandomAccessFileManager(
- fileName, filePattern, isAppend, isFlush, bufferSize, policy, strategy, advertiseURI, layout);
+ fileName, filePattern, isAppend, isFlush, bufferSize, policy, strategy, advertiseURI, layout, config);
if (manager == null) {
return null;
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/72259095/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/WriterManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/WriterManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/WriterManager.java
index 11ac856..b3b9e73 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/WriterManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/WriterManager.java
@@ -46,7 +46,7 @@ public class WriterManager extends AbstractManager {
public WriterManager(final Writer writer, final String streamName, final StringLayout layout,
final boolean writeHeader) {
- super(streamName);
+ super(null, streamName);
this.writer = writer;
this.layout = layout;
if (writeHeader && layout != null) {
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/72259095/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseManager.java
index 82c7b18..c3682dc 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseManager.java
@@ -41,7 +41,7 @@ public abstract class AbstractDatabaseManager extends AbstractManager implements
* @param bufferSize The size of the log event buffer.
*/
protected AbstractDatabaseManager(final String name, final int bufferSize) {
- super(name);
+ super(null, name);
this.bufferSize = bufferSize;
this.buffer = new ArrayList<>(bufferSize + 1);
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/72259095/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsManager.java
index f5f42c9..7cf1637 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsManager.java
@@ -52,7 +52,7 @@ public class JmsManager extends AbstractManager {
private JmsManager(final String name, final JndiManager jndiManager, final String connectionFactoryName,
final String destinationName, final String username, final String password)
throws NamingException, JMSException {
- super(name);
+ super(null, name);
this.jndiManager = jndiManager;
final ConnectionFactory connectionFactory = this.jndiManager.lookup(connectionFactoryName);
if (username != null && password != null) {
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/72259095/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqManager.java
index e84ab6d..6f106be 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqManager.java
@@ -69,7 +69,7 @@ public class JeroMqManager extends AbstractManager {
private final ZMQ.Socket publisher;
private JeroMqManager(final String name, final JeroMqConfiguration config) {
- super(name);
+ super(null, name);
publisher = CONTEXT.socket(ZMQ.PUB);
publisher.setAffinity(config.affinity);
publisher.setBacklog(config.backlog);
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/72259095/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaManager.java
index d535e02..f222b59 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaManager.java
@@ -44,7 +44,7 @@ public class KafkaManager extends AbstractManager {
private final String topic;
public KafkaManager(final String name, final String topic, final Property[] properties) {
- super(name);
+ super(null, name);
this.topic = topic;
config.setProperty("key.serializer", "org.apache.kafka.common.serialization.ByteArraySerializer");
config.setProperty("value.serializer", "org.apache.kafka.common.serialization.ByteArraySerializer");
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/72259095/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
index 3c6739f..b741b4e 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
@@ -17,7 +17,6 @@
package org.apache.logging.log4j.core.appender.rolling;
import java.io.File;
-import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
@@ -28,11 +27,13 @@ import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
import org.apache.logging.log4j.core.Layout;
import org.apache.logging.log4j.core.LogEvent;
+import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.core.appender.ConfigurationFactoryData;
import org.apache.logging.log4j.core.appender.FileManager;
import org.apache.logging.log4j.core.appender.ManagerFactory;
import org.apache.logging.log4j.core.appender.rolling.action.AbstractAction;
import org.apache.logging.log4j.core.appender.rolling.action.Action;
-import org.apache.logging.log4j.core.util.Clock;
+import org.apache.logging.log4j.core.config.Configuration;
import org.apache.logging.log4j.core.util.Constants;
import org.apache.logging.log4j.core.util.Log4jThread;
@@ -81,15 +82,13 @@ public class RollingFileManager extends FileManager {
}
/**
- * @throws IOException
* @since 2.7
*/
- protected RollingFileManager(final String fileName, final String pattern, final OutputStream os, final boolean append,
- final boolean createOnDemand, final long size, final long time, final TriggeringPolicy triggeringPolicy,
- final RolloverStrategy rolloverStrategy, final String advertiseURI,
- final Layout<? extends Serializable> layout, final boolean writeHeader, final ByteBuffer buffer)
- throws IOException {
- super(fileName, os, append, false, createOnDemand, advertiseURI, layout, writeHeader, buffer);
+ protected RollingFileManager(LoggerContext loggerContext, final String fileName, final String pattern, final OutputStream os,
+ final boolean append, final boolean createOnDemand, final long size, final long time,
+ final TriggeringPolicy triggeringPolicy, final RolloverStrategy rolloverStrategy,
+ final String advertiseURI, final Layout<? extends Serializable> layout, final boolean writeHeader, final ByteBuffer buffer) {
+ super(loggerContext, fileName, os, append, false, createOnDemand, advertiseURI, layout, writeHeader, buffer);
this.size = size;
this.initialTime = time;
this.triggeringPolicy = triggeringPolicy;
@@ -115,15 +114,16 @@ public class RollingFileManager extends FileManager {
* @param bufferSize buffer size to use if bufferedIO is true
* @param immediateFlush flush on every write or not
* @param createOnDemand true if you want to lazy-create the file (a.k.a. on-demand.)
+ * @param configuration The configuration.
* @return A RollingFileManager.
*/
public static RollingFileManager getFileManager(final String fileName, final String pattern, final boolean append,
final boolean bufferedIO, final TriggeringPolicy policy, final RolloverStrategy strategy,
final String advertiseURI, final Layout<? extends Serializable> layout, final int bufferSize,
- final boolean immediateFlush, final boolean createOnDemand) {
+ final boolean immediateFlush, final boolean createOnDemand, final Configuration configuration) {
return (RollingFileManager) getManager(fileName, new FactoryData(pattern, append,
- bufferedIO, policy, strategy, advertiseURI, layout, bufferSize, immediateFlush, createOnDemand), factory);
+ bufferedIO, policy, strategy, advertiseURI, layout, bufferSize, immediateFlush, createOnDemand, configuration), factory);
}
// override to make visible for unit tests
@@ -341,7 +341,7 @@ public class RollingFileManager extends FileManager {
/**
* Factory data.
*/
- private static class FactoryData {
+ private static class FactoryData extends ConfigurationFactoryData {
private final String pattern;
private final boolean append;
private final boolean bufferedIO;
@@ -354,7 +354,7 @@ public class RollingFileManager extends FileManager {
private final Layout<? extends Serializable> layout;
/**
- * Create the data for the factory.
+ * Creates the data for the factory.
* @param pattern The pattern.
* @param append The append flag.
* @param bufferedIO The bufferedIO flag.
@@ -363,11 +363,13 @@ public class RollingFileManager extends FileManager {
* @param bufferSize the buffer size
* @param immediateFlush flush on every write or not
* @param createOnDemand true if you want to lazy-create the file (a.k.a. on-demand.)
+ * @param configuration The configuration
*/
public FactoryData(final String pattern, final boolean append, final boolean bufferedIO,
final TriggeringPolicy policy, final RolloverStrategy strategy, final String advertiseURI,
final Layout<? extends Serializable> layout, final int bufferSize, final boolean immediateFlush,
- final boolean createOnDemand) {
+ final boolean createOnDemand, final Configuration configuration) {
+ super(configuration);
this.pattern = pattern;
this.append = append;
this.bufferedIO = bufferedIO;
@@ -458,8 +460,9 @@ public class RollingFileManager extends FileManager {
final OutputStream os = data.createOnDemand ? null : new FileOutputStream(name, data.append);
final long time = data.createOnDemand? System.currentTimeMillis() : file.lastModified(); // LOG4J2-531 create file first so time has valid value
- return new RollingFileManager(name, data.pattern, os, data.append, data.createOnDemand, size, time, data.policy,
- data.strategy, data.advertiseURI, data.layout, writeHeader, buffer);
+ return new RollingFileManager(data.getLoggerContext(), name, data.pattern, os,
+ data.append, data.createOnDemand, size, time, data.policy, data.strategy, data.advertiseURI,
+ data.layout, writeHeader, buffer);
} catch (final IOException ex) {
LOGGER.error("RollingFileManager (" + name + ") " + ex, ex);
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/72259095/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java
index 4a92beb..8b39209 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java
@@ -24,8 +24,11 @@ import java.io.Serializable;
import java.nio.ByteBuffer;
import org.apache.logging.log4j.core.Layout;
+import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.appender.AppenderLoggingException;
+import org.apache.logging.log4j.core.appender.ConfigurationFactoryData;
import org.apache.logging.log4j.core.appender.ManagerFactory;
+import org.apache.logging.log4j.core.config.Configuration;
import org.apache.logging.log4j.core.util.NullOutputStream;
/**
@@ -43,12 +46,13 @@ public class RollingRandomAccessFileManager extends RollingFileManager {
private RandomAccessFile randomAccessFile;
private final ThreadLocal<Boolean> isEndOfBatch = new ThreadLocal<>();
- public RollingRandomAccessFileManager(final RandomAccessFile raf, final String fileName, final String pattern,
- final OutputStream os, final boolean append, final boolean immediateFlush, final int bufferSize,
- final long size, final long time, final TriggeringPolicy policy, final RolloverStrategy strategy,
- final String advertiseURI, final Layout<? extends Serializable> layout, final boolean writeHeader) {
- super(fileName, pattern, os, append, size, time, policy, strategy, advertiseURI, layout, writeHeader,
- ByteBuffer.wrap(new byte[bufferSize]));
+ public RollingRandomAccessFileManager(final LoggerContext loggerContext, final RandomAccessFile raf,
+ final String fileName, final String pattern, final OutputStream os, final boolean append,
+ final boolean immediateFlush, final int bufferSize, final long size, final long time,
+ final TriggeringPolicy policy, final RolloverStrategy strategy, final String advertiseURI,
+ final Layout<? extends Serializable> layout, final boolean writeHeader) {
+ super(loggerContext, fileName, pattern, os, append, false, size, time, policy, strategy, advertiseURI, layout,
+ writeHeader, ByteBuffer.wrap(new byte[bufferSize]));
this.randomAccessFile = raf;
isEndOfBatch.set(Boolean.FALSE);
writeHeader();
@@ -78,9 +82,9 @@ public class RollingRandomAccessFileManager extends RollingFileManager {
public static RollingRandomAccessFileManager getRollingRandomAccessFileManager(final String fileName,
final String filePattern, final boolean isAppend, final boolean immediateFlush, final int bufferSize,
final TriggeringPolicy policy, final RolloverStrategy strategy, final String advertiseURI,
- final Layout<? extends Serializable> layout) {
+ final Layout<? extends Serializable> layout, Configuration configuration) {
return (RollingRandomAccessFileManager) getManager(fileName, new FactoryData(filePattern, isAppend,
- immediateFlush, bufferSize, policy, strategy, advertiseURI, layout), FACTORY);
+ immediateFlush, bufferSize, policy, strategy, advertiseURI, layout, configuration), FACTORY);
}
public Boolean isEndOfBatch() {
@@ -182,9 +186,9 @@ public class RollingRandomAccessFileManager extends RollingFileManager {
LOGGER.trace("RandomAccessFile {} set length to 0", name);
raf.setLength(0);
}
- return new RollingRandomAccessFileManager(raf, name, data.pattern, NullOutputStream.NULL_OUTPUT_STREAM,
- data.append, data.immediateFlush, data.bufferSize, size, time, data.policy, data.strategy,
- data.advertiseURI, data.layout, writeHeader);
+ return new RollingRandomAccessFileManager(data.getLoggerContext(), raf, name, data.pattern,
+ NullOutputStream.NULL_OUTPUT_STREAM, data.append, data.immediateFlush, data.bufferSize, size, time, data.policy,
+ data.strategy, data.advertiseURI, data.layout, writeHeader);
} catch (final IOException ex) {
LOGGER.error("Cannot access RandomAccessFile " + ex, ex);
if (raf != null) {
@@ -202,7 +206,7 @@ public class RollingRandomAccessFileManager extends RollingFileManager {
/**
* Factory data.
*/
- private static class FactoryData {
+ private static class FactoryData extends ConfigurationFactoryData {
private final String pattern;
private final boolean append;
private final boolean immediateFlush;
@@ -223,10 +227,12 @@ public class RollingRandomAccessFileManager extends RollingFileManager {
* @param strategy
* @param advertiseURI
* @param layout
+ * @param configuration
*/
public FactoryData(final String pattern, final boolean append, final boolean immediateFlush,
final int bufferSize, final TriggeringPolicy policy, final RolloverStrategy strategy,
- final String advertiseURI, final Layout<? extends Serializable> layout) {
+ final String advertiseURI, final Layout<? extends Serializable> layout, Configuration configuration) {
+ super(configuration);
this.pattern = pattern;
this.append = append;
this.immediateFlush = immediateFlush;
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/72259095/log4j-core/src/main/java/org/apache/logging/log4j/core/net/JndiManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/JndiManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/JndiManager.java
index 31009b6..c413373 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/JndiManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/JndiManager.java
@@ -39,7 +39,7 @@ public class JndiManager extends AbstractManager {
private final Context context;
private JndiManager(final String name, final Context context) {
- super(name);
+ super(null, name);
this.context = context;
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/72259095/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SmtpManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SmtpManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SmtpManager.java
index 5367fa3..5494911 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SmtpManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SmtpManager.java
@@ -77,7 +77,7 @@ public class SmtpManager extends AbstractManager {
protected SmtpManager(final String name, final Session session, final MimeMessage message,
final FactoryData data) {
- super(name);
+ super(null, name);
this.session = session;
this.message = message;
this.data = data;
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/72259095/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/RandomAccessFileManagerTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/RandomAccessFileManagerTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/RandomAccessFileManagerTest.java
index ac95668..fb84266 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/RandomAccessFileManagerTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/RandomAccessFileManagerTest.java
@@ -47,8 +47,8 @@ public class RandomAccessFileManagerTest {
final File file = folder.newFile();
try (final RandomAccessFile raf = new RandomAccessFile(file, "rw")) {
final OutputStream os = NullOutputStream.NULL_OUTPUT_STREAM;
- final RandomAccessFileManager manager = new RandomAccessFileManager(raf, file.getName(), os,
- RandomAccessFileManager.DEFAULT_BUFFER_SIZE, null, null, true);
+ final RandomAccessFileManager manager = new RandomAccessFileManager(null, raf, file.getName(),
+ os, RandomAccessFileManager.DEFAULT_BUFFER_SIZE, null, null, true);
final int size = RandomAccessFileManager.DEFAULT_BUFFER_SIZE * 3;
final byte[] data = new byte[size];
@@ -68,8 +68,8 @@ public class RandomAccessFileManagerTest {
final File file = folder.newFile();
try (final RandomAccessFile raf = new RandomAccessFile(file, "rw")) {
final OutputStream os = NullOutputStream.NULL_OUTPUT_STREAM;
- final RandomAccessFileManager manager = new RandomAccessFileManager(raf, file.getName(), os,
- RandomAccessFileManager.DEFAULT_BUFFER_SIZE, null, null, true);
+ final RandomAccessFileManager manager = new RandomAccessFileManager(null, raf, file.getName(),
+ os, RandomAccessFileManager.DEFAULT_BUFFER_SIZE, null, null, true);
final int size = RandomAccessFileManager.DEFAULT_BUFFER_SIZE * 3 + 1;
final byte[] data = new byte[size];
@@ -89,8 +89,8 @@ public class RandomAccessFileManagerTest {
final int bufferSize = 4 * 1024;
assertNotEquals(bufferSize, RandomAccessFileManager.DEFAULT_BUFFER_SIZE);
- final RandomAccessFileManager manager = new RandomAccessFileManager(raf, file.getName(), os,
- bufferSize, null, null, true);
+ final RandomAccessFileManager manager = new RandomAccessFileManager(null, raf, file.getName(),
+ os, bufferSize, null, null, true);
// check the resulting buffer size is what was requested
assertEquals(bufferSize, manager.getBufferSize());
@@ -102,8 +102,8 @@ public class RandomAccessFileManagerTest {
try (final RandomAccessFile raf = new RandomAccessFile(file, "rw")) {
final OutputStream os = NullOutputStream.NULL_OUTPUT_STREAM;
final int bufferSize = 1;
- final RandomAccessFileManager manager = new RandomAccessFileManager(raf, file.getName(), os,
- bufferSize, null, null, true);
+ final RandomAccessFileManager manager = new RandomAccessFileManager(null, raf, file.getName(),
+ os, bufferSize, null, null, true);
final int size = bufferSize * 3 + 1;
final byte[] data = new byte[size];
@@ -131,7 +131,7 @@ public class RandomAccessFileManagerTest {
assertEquals("all flushed to disk", bytes.length, file.length());
final RandomAccessFileManager manager = RandomAccessFileManager.getFileManager(
- file.getAbsolutePath(), isAppend, true, RandomAccessFileManager.DEFAULT_BUFFER_SIZE, null, null);
+ file.getAbsolutePath(), isAppend, true, RandomAccessFileManager.DEFAULT_BUFFER_SIZE, null, null, null);
manager.write(bytes, 0, bytes.length, true);
final int expected = bytes.length * 2;
assertEquals("appended, not overwritten", expected, file.length());
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/72259095/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/OnStartupTriggeringPolicyTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/OnStartupTriggeringPolicyTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/OnStartupTriggeringPolicyTest.java
index 27f8e7e..4ab6b5b 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/OnStartupTriggeringPolicyTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/OnStartupTriggeringPolicyTest.java
@@ -78,7 +78,7 @@ public class OnStartupTriggeringPolicyTest {
configuration);
final OnStartupTriggeringPolicy policy = OnStartupTriggeringPolicy.createPolicy(1);
final RollingFileManager manager = RollingFileManager.getFileManager(TARGET_FILE, TARGET_PATTERN, true, false,
- policy, strategy, null, layout, 8192, true, false);
+ policy, strategy, null, layout, 8192, true, false, configuration);
try {
manager.initialize();
String files = Arrays.toString(new File(TARGET_FOLDER).listFiles());
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/72259095/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManagerTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManagerTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManagerTest.java
index 70f5aa1..c9486f0 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManagerTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManagerTest.java
@@ -58,9 +58,9 @@ public class RollingRandomAccessFileManagerTest {
final long time = System.currentTimeMillis();
final TriggeringPolicy triggerPolicy = new SizeBasedTriggeringPolicy(triggerSize);
final RolloverStrategy rolloverStrategy = null;
- final RollingRandomAccessFileManager manager = new RollingRandomAccessFileManager(raf, file.getName(),
- Strings.EMPTY, os, append, flushNow, RollingRandomAccessFileManager.DEFAULT_BUFFER_SIZE,
- triggerSize, time, triggerPolicy, rolloverStrategy, null, null, true);
+ final RollingRandomAccessFileManager manager = new RollingRandomAccessFileManager(null, raf,
+ file.getName(), Strings.EMPTY, os, append, flushNow,
+ RollingRandomAccessFileManager.DEFAULT_BUFFER_SIZE, triggerSize, time, triggerPolicy, rolloverStrategy, null, null, true);
final int size = RollingRandomAccessFileManager.DEFAULT_BUFFER_SIZE * 3;
final byte[] data = new byte[size];
@@ -87,9 +87,9 @@ public class RollingRandomAccessFileManagerTest {
final long time = System.currentTimeMillis();
final TriggeringPolicy triggerPolicy = new SizeBasedTriggeringPolicy(triggerSize);
final RolloverStrategy rolloverStrategy = null;
- final RollingRandomAccessFileManager manager = new RollingRandomAccessFileManager(raf, file.getName(),
- Strings.EMPTY, os, append, flushNow, RollingRandomAccessFileManager.DEFAULT_BUFFER_SIZE,
- triggerSize, time, triggerPolicy, rolloverStrategy, null, null, true);
+ final RollingRandomAccessFileManager manager = new RollingRandomAccessFileManager(null, raf,
+ file.getName(), Strings.EMPTY, os, append, flushNow,
+ RollingRandomAccessFileManager.DEFAULT_BUFFER_SIZE, triggerSize, time, triggerPolicy, rolloverStrategy, null, null, true);
final int size = RollingRandomAccessFileManager.DEFAULT_BUFFER_SIZE * 3 + 1;
final byte[] data = new byte[size];
@@ -115,9 +115,9 @@ public class RollingRandomAccessFileManagerTest {
final int bufferSize = 4 * 1024;
assertNotEquals(bufferSize, RollingRandomAccessFileManager.DEFAULT_BUFFER_SIZE);
final RolloverStrategy rolloverStrategy = null;
- final RollingRandomAccessFileManager manager = new RollingRandomAccessFileManager(raf, file.getName(),
- Strings.EMPTY, os, append, flushNow, bufferSize, triggerSize, time, triggerPolicy, rolloverStrategy,
- null, null, true);
+ final RollingRandomAccessFileManager manager = new RollingRandomAccessFileManager(null, raf,
+ file.getName(), Strings.EMPTY, os, append, flushNow, bufferSize, triggerSize, time, triggerPolicy,
+ rolloverStrategy, null, null, true);
// check the resulting buffer size is what was requested
assertEquals(bufferSize, manager.getBufferSize());
@@ -149,7 +149,7 @@ public class RollingRandomAccessFileManagerTest {
//
file.getAbsolutePath(), Strings.EMPTY, isAppend, immediateFlush,
RollingRandomAccessFileManager.DEFAULT_BUFFER_SIZE, new SizeBasedTriggeringPolicy(Long.MAX_VALUE), //
- null, null, null);
+ null, null, null, null);
manager.write(bytes, 0, bytes.length, immediateFlush);
final int expected = bytes.length * 2;
assertThat("appended, not overwritten", file, hasLength(expected));
@@ -171,7 +171,7 @@ public class RollingRandomAccessFileManagerTest {
//
file.getAbsolutePath(), Strings.EMPTY, isAppend, true,
RollingRandomAccessFileManager.DEFAULT_BUFFER_SIZE, new SizeBasedTriggeringPolicy(Long.MAX_VALUE), //
- null, null, null);
+ null, null, null, null);
assertTrue(manager.getFileTime() < expectedMax);
assertTrue(manager.getFileTime() >= expectedMin);
}
@@ -189,7 +189,7 @@ public class RollingRandomAccessFileManagerTest {
//
file.getAbsolutePath(), Strings.EMPTY, isAppend, true,
RollingRandomAccessFileManager.DEFAULT_BUFFER_SIZE, new SizeBasedTriggeringPolicy(Long.MAX_VALUE), //
- null, null, null);
+ null, null, null, null);
assertThat(file, lastModified(equalTo(manager.getFileTime())));
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/72259095/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/AbstractFlumeManager.java
----------------------------------------------------------------------
diff --git a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/AbstractFlumeManager.java b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/AbstractFlumeManager.java
index 55fb858..8fc6ab4 100644
--- a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/AbstractFlumeManager.java
+++ b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/AbstractFlumeManager.java
@@ -25,7 +25,7 @@ import org.apache.logging.log4j.core.appender.AbstractManager;
public abstract class AbstractFlumeManager extends AbstractManager {
public AbstractFlumeManager(final String name) {
- super(name);
+ super(null, name);
}
public abstract void send(Event event);
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/72259095/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 4c8303a..b170dc6 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -129,6 +129,9 @@
<action issue="LOG4J2-1547" dev="ggregory" type="add" due-to="Gary Gregory">
The Core AbstractConfiguration should track its LoggerContext and add Configuration.getLoggerContext().
</action>
+ <action issue="LOG4J2-1540" dev="ggregory" type="add" due-to="Gary Gregory">
+ The Core AbstractManager should track its LoggerContext.
+ </action>
<action issue="LOG4J2-1458" dev="ggregory" type="update" due-to="Gary Gregory">
Update Jackson from 2.7.5 to 2.8.0.
</action>