You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ni...@apache.org on 2021/03/31 07:19:25 UTC
[ignite] branch ignite-cdc updated: IGNITE-14353 Ability to specify
postfix for IgniteLogger instead of nodeId (#8923)
This is an automated email from the ASF dual-hosted git repository.
nizhikov pushed a commit to branch ignite-cdc
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/ignite-cdc by this push:
new f590a18 IGNITE-14353 Ability to specify postfix for IgniteLogger instead of nodeId (#8923)
f590a18 is described below
commit f590a18b1379923852b6761de6b4951acf50a6ab
Author: Nikolay <ni...@apache.org>
AuthorDate: Wed Mar 31 10:19:06 2021 +0300
IGNITE-14353 Ability to specify postfix for IgniteLogger instead of nodeId (#8923)
---
.../org/apache/ignite/internal/IgnitionEx.java | 24 ++++++++++++++++---
.../apache/ignite/internal/util/IgniteUtils.java | 14 +++++------
.../apache/ignite/logger/LoggerNodeIdAware.java | 3 +++
...gerNodeIdAware.java => LoggerPostfixAware.java} | 19 ++++-----------
.../org/apache/ignite/logger/java/JavaLogger.java | 27 ++++++++++++++++++----
.../ignite/logger/java/JavaLoggerFileHandler.java | 11 ++++++++-
.../apache/ignite/logger/java/JavaLoggerTest.java | 8 +++++--
.../logger/GridLog4jRollingFileAppender.java | 27 +++++++++++++---------
.../junits/logger/GridTestLog4jLogger.java | 23 ++++++++++--------
.../apache/ignite/logger/log4j/Log4JLogger.java | 18 ++++++++++++---
.../ignite/logger/log4j/Log4jNodeIdFilePath.java | 15 ++++++------
.../apache/ignite/logger/log4j2/Log4J2Logger.java | 19 +++++++++++----
.../ignite/logger/log4j2/Log4j2LoggerSelfTest.java | 18 +++++++++++----
13 files changed, 155 insertions(+), 71 deletions(-)
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
index 3104269..1f22c4b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
@@ -110,6 +110,7 @@ import org.apache.ignite.lang.IgniteBiInClosure;
import org.apache.ignite.lang.IgniteBiTuple;
import org.apache.ignite.lang.IgniteInClosure;
import org.apache.ignite.logger.LoggerNodeIdAware;
+import org.apache.ignite.logger.LoggerPostfixAware;
import org.apache.ignite.logger.java.JavaLogger;
import org.apache.ignite.marshaller.Marshaller;
import org.apache.ignite.marshaller.MarshallerUtils;
@@ -2535,9 +2536,22 @@ public class IgnitionEx {
* @return Initialized logger.
* @throws IgniteCheckedException If failed.
*/
- @SuppressWarnings("ErrorNotRethrown")
private IgniteLogger initLogger(@Nullable IgniteLogger cfgLog, UUID nodeId, String workDir)
throws IgniteCheckedException {
+ return initLogger(cfgLog, nodeId, null, workDir);
+ }
+
+ /**
+ * @param cfgLog Configured logger.
+ * @param nodeId Local node ID.
+ * @param postfix Log file postfix.
+ * @param workDir Work directory.
+ * @return Initialized logger.
+ * @throws IgniteCheckedException If failed.
+ */
+ @SuppressWarnings("ErrorNotRethrown")
+ public IgniteLogger initLogger(@Nullable IgniteLogger cfgLog, UUID nodeId, String postfix, String workDir)
+ throws IgniteCheckedException {
try {
Exception log4jInitErr = null;
@@ -2600,8 +2614,12 @@ public class IgnitionEx {
((JavaLogger)cfgLog).setWorkDirectory(workDir);
// Set node IDs for all file appenders.
- if (cfgLog instanceof LoggerNodeIdAware)
- ((LoggerNodeIdAware)cfgLog).setNodeId(nodeId);
+ if (cfgLog instanceof LoggerNodeIdAware) {
+ if (nodeId == null && cfgLog instanceof LoggerPostfixAware)
+ ((LoggerPostfixAware)cfgLog).setPostfix(postfix);
+ else
+ ((LoggerNodeIdAware)cfgLog).setNodeId(nodeId);
+ }
if (log4jInitErr != null)
U.warn(cfgLog, "Failed to initialize Log4JLogger (falling back to standard java logging): "
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index 61dba92..b0e24bb 100755
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -8826,15 +8826,15 @@ public abstract class IgniteUtils {
}
/**
- * Attaches node ID to log file name.
+ * Attaches postfix to log file name.
*
- * @param nodeId Node ID.
+ * @param postfix Postfix.
* @param fileName File name.
- * @return File name with node ID.
+ * @return File name with postfix.
*/
@SuppressWarnings("IfMayBeConditional")
- public static String nodeIdLogFileName(UUID nodeId, String fileName) {
- assert nodeId != null;
+ public static String logFileName(String postfix, String fileName) {
+ assert postfix != null;
assert fileName != null;
fileName = GridFilenameUtils.separatorsToSystem(fileName);
@@ -8842,9 +8842,9 @@ public abstract class IgniteUtils {
int dot = fileName.lastIndexOf('.');
if (dot < 0 || dot == fileName.length() - 1)
- return fileName + '-' + U.id8(nodeId);
+ return fileName + '-' + postfix;
else
- return fileName.substring(0, dot) + '-' + U.id8(nodeId) + fileName.substring(dot);
+ return fileName.substring(0, dot) + '-' + postfix + fileName.substring(dot);
}
/**
diff --git a/modules/core/src/main/java/org/apache/ignite/logger/LoggerNodeIdAware.java b/modules/core/src/main/java/org/apache/ignite/logger/LoggerNodeIdAware.java
index 492d93c..16c5125 100644
--- a/modules/core/src/main/java/org/apache/ignite/logger/LoggerNodeIdAware.java
+++ b/modules/core/src/main/java/org/apache/ignite/logger/LoggerNodeIdAware.java
@@ -21,7 +21,10 @@ import java.util.UUID;
/**
* Interface for Ignite file appenders to attach node ID to log file names.
+ *
+ * @deprecated Use {@link LoggerPostfixAware} instead.
*/
+@Deprecated
public interface LoggerNodeIdAware {
/**
* Sets node ID.
diff --git a/modules/core/src/main/java/org/apache/ignite/logger/LoggerNodeIdAware.java b/modules/core/src/main/java/org/apache/ignite/logger/LoggerPostfixAware.java
similarity index 73%
copy from modules/core/src/main/java/org/apache/ignite/logger/LoggerNodeIdAware.java
copy to modules/core/src/main/java/org/apache/ignite/logger/LoggerPostfixAware.java
index 492d93c..cb86621 100644
--- a/modules/core/src/main/java/org/apache/ignite/logger/LoggerNodeIdAware.java
+++ b/modules/core/src/main/java/org/apache/ignite/logger/LoggerPostfixAware.java
@@ -17,23 +17,14 @@
package org.apache.ignite.logger;
-import java.util.UUID;
-
/**
- * Interface for Ignite file appenders to attach node ID to log file names.
+ * Interface for Ignite file appenders to attach postfix to log file names.
*/
-public interface LoggerNodeIdAware {
- /**
- * Sets node ID.
- *
- * @param nodeId Node ID.
- */
- public void setNodeId(UUID nodeId);
-
+public interface LoggerPostfixAware extends LoggerNodeIdAware {
/**
- * Gets node ID.
+ * Sets postfix.
*
- * @return Node ID.
+ * @param postfix Postfix.
*/
- public UUID getNodeId();
+ public void setPostfix(String postfix);
}
diff --git a/modules/core/src/main/java/org/apache/ignite/logger/java/JavaLogger.java b/modules/core/src/main/java/org/apache/ignite/logger/java/JavaLogger.java
index c82f01d..89dc707 100644
--- a/modules/core/src/main/java/org/apache/ignite/logger/java/JavaLogger.java
+++ b/modules/core/src/main/java/org/apache/ignite/logger/java/JavaLogger.java
@@ -34,7 +34,7 @@ import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.internal.A;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.util.typedef.internal.U;
-import org.apache.ignite.logger.LoggerNodeIdAware;
+import org.apache.ignite.logger.LoggerPostfixAware;
import org.jetbrains.annotations.Nullable;
import static java.util.logging.Level.FINE;
@@ -95,7 +95,7 @@ import static org.apache.ignite.IgniteSystemProperties.IGNITE_QUIET;
* logger in your task/job code. See {@link org.apache.ignite.resources.LoggerResource} annotation about logger
* injection.
*/
-public class JavaLogger implements IgniteLogger, LoggerNodeIdAware {
+public class JavaLogger implements IgniteLogger, LoggerPostfixAware {
/** */
public static final String DFLT_CONFIG_PATH = "config/java.util.logging.properties";
@@ -128,6 +128,10 @@ public class JavaLogger implements IgniteLogger, LoggerNodeIdAware {
@GridToStringExclude
private volatile UUID nodeId;
+ /** Postfix. */
+ @GridToStringExclude
+ private volatile String postfix;
+
/**
* Creates new logger.
*/
@@ -368,14 +372,27 @@ public class JavaLogger implements IgniteLogger, LoggerNodeIdAware {
@Override public void setNodeId(UUID nodeId) {
A.notNull(nodeId, "nodeId");
- if (this.nodeId != null)
+ postfix(nodeId, U.id8(nodeId));
+ }
+
+ /** {@inheritDoc} */
+ @Override public void setPostfix(String postfix) {
+ A.notNull(postfix, "postfix");
+
+ postfix(null, postfix);
+ }
+
+ /** */
+ private void postfix(UUID nodeId, String postfix) {
+ if (this.postfix != null)
return;
synchronized (mux) {
// Double check.
- if (this.nodeId != null)
+ if (this.postfix != null)
return;
+ this.postfix = postfix;
this.nodeId = nodeId;
}
@@ -385,7 +402,7 @@ public class JavaLogger implements IgniteLogger, LoggerNodeIdAware {
return;
try {
- fileHnd.nodeId(nodeId, workDir);
+ fileHnd.postfix(postfix, workDir);
}
catch (IgniteCheckedException | IOException e) {
throw new RuntimeException("Failed to enable file handler.", e);
diff --git a/modules/core/src/main/java/org/apache/ignite/logger/java/JavaLoggerFileHandler.java b/modules/core/src/main/java/org/apache/ignite/logger/java/JavaLoggerFileHandler.java
index 6320589..e729441 100644
--- a/modules/core/src/main/java/org/apache/ignite/logger/java/JavaLoggerFileHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/logger/java/JavaLoggerFileHandler.java
@@ -80,6 +80,15 @@ public final class JavaLoggerFileHandler extends StreamHandler {
* @param nodeId Node id.
*/
public void nodeId(UUID nodeId, String workDir) throws IgniteCheckedException, IOException {
+ postfix(U.id8(nodeId), workDir);
+ }
+
+ /**
+ * Sets Postfix and instantiates {@link FileHandler} delegate.
+ *
+ * @param postfix Postfix.
+ */
+ public void postfix(String postfix, String workDir) throws IgniteCheckedException, IOException {
if (delegate != null)
return;
@@ -90,7 +99,7 @@ public final class JavaLoggerFileHandler extends StreamHandler {
if (ptrn == null)
ptrn = "ignite-%{id8}.%g.log";
- ptrn = new File(logDirectory(workDir), ptrn.replace("%{id8}", U.id8(nodeId))).getAbsolutePath();
+ ptrn = new File(logDirectory(workDir), ptrn.replace("%{id8}", postfix)).getAbsolutePath();
int limit = getIntProperty(clsName + ".limit", 0);
diff --git a/modules/core/src/test/java/org/apache/ignite/logger/java/JavaLoggerTest.java b/modules/core/src/test/java/org/apache/ignite/logger/java/JavaLoggerTest.java
index 4687ca9..dba2650 100644
--- a/modules/core/src/test/java/org/apache/ignite/logger/java/JavaLoggerTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/logger/java/JavaLoggerTest.java
@@ -20,10 +20,11 @@ package org.apache.ignite.logger.java;
import java.util.UUID;
import org.apache.ignite.IgniteLogger;
import org.apache.ignite.internal.util.typedef.internal.U;
-import org.apache.ignite.logger.LoggerNodeIdAware;
+import org.apache.ignite.logger.LoggerPostfixAware;
import org.apache.ignite.testframework.junits.common.GridCommonTest;
import org.junit.Test;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
/**
@@ -43,7 +44,10 @@ public class JavaLoggerTest {
log = new JavaLogger();
((JavaLogger)log).setWorkDirectory(U.defaultWorkDirectory());
- ((LoggerNodeIdAware)log).setNodeId(UUID.fromString("00000000-1111-2222-3333-444444444444"));
+ UUID id = UUID.fromString("00000000-1111-2222-3333-444444444444");
+
+ ((LoggerPostfixAware)log).setNodeId(id);
+ assertEquals(id, ((LoggerPostfixAware)log).getNodeId());
System.out.println(log.toString());
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/logger/GridLog4jRollingFileAppender.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/logger/GridLog4jRollingFileAppender.java
index fc9f38f..5d73e7c 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/logger/GridLog4jRollingFileAppender.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/logger/GridLog4jRollingFileAppender.java
@@ -23,16 +23,16 @@ import java.util.UUID;
import org.apache.ignite.IgniteSystemProperties;
import org.apache.ignite.internal.util.typedef.internal.A;
import org.apache.ignite.internal.util.typedef.internal.U;
-import org.apache.ignite.logger.LoggerNodeIdAware;
+import org.apache.ignite.logger.LoggerPostfixAware;
import org.apache.log4j.Layout;
import org.apache.log4j.RollingFileAppender;
/**
* Log4J {@link org.apache.log4j.RollingFileAppender} with added support for grid node IDs.
*/
-public class GridLog4jRollingFileAppender extends RollingFileAppender implements LoggerNodeIdAware {
- /** Node ID. */
- private UUID nodeId;
+public class GridLog4jRollingFileAppender extends RollingFileAppender implements LoggerPostfixAware {
+ /** Postfix. */
+ private String postfix;
/** Basic log file name. */
private String baseFileName;
@@ -79,17 +79,22 @@ public class GridLog4jRollingFileAppender extends RollingFileAppender implements
}
/** {@inheritDoc} */
+ @Override public void setNodeId(UUID nodeId) {
+ setPostfix(U.id8(nodeId));
+ }
+
+ /** {@inheritDoc} */
@SuppressWarnings("NonPrivateFieldAccessedInSynchronizedContext")
- @Override public synchronized void setNodeId(UUID nodeId) {
- A.notNull(nodeId, "nodeId");
+ @Override public synchronized void setPostfix(String postfix) {
+ A.notNull(postfix, "postfix");
- this.nodeId = nodeId;
+ this.postfix = postfix;
if (fileName != null) { // fileName could be null if IGNITE_HOME is not defined.
if (baseFileName == null)
baseFileName = fileName;
- fileName = U.nodeIdLogFileName(nodeId, baseFileName);
+ fileName = U.logFileName(postfix, baseFileName);
}
else {
String tmpDir = IgniteSystemProperties.getString("java.io.tmpdir");
@@ -97,20 +102,20 @@ public class GridLog4jRollingFileAppender extends RollingFileAppender implements
if (tmpDir != null) {
baseFileName = new File(tmpDir, "ignite.log").getAbsolutePath();
- fileName = U.nodeIdLogFileName(nodeId, baseFileName);
+ fileName = U.logFileName(postfix, baseFileName);
}
}
}
/** {@inheritDoc} */
@Override public synchronized UUID getNodeId() {
- return nodeId;
+ throw new UnsupportedOperationException("getNodeId");
}
/** {@inheritDoc} */
@Override public synchronized void setFile(String fileName, boolean fileAppend, boolean bufIO, int bufSize)
throws IOException {
- if (nodeId != null)
+ if (postfix != null)
super.setFile(fileName, fileAppend, bufIO, bufSize);
}
}
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/logger/GridTestLog4jLogger.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/logger/GridTestLog4jLogger.java
index 4464828..65d1654 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/logger/GridTestLog4jLogger.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/logger/GridTestLog4jLogger.java
@@ -33,7 +33,7 @@ import org.apache.ignite.internal.util.typedef.internal.A;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteClosure;
-import org.apache.ignite.logger.LoggerNodeIdAware;
+import org.apache.ignite.logger.LoggerPostfixAware;
import org.apache.log4j.Appender;
import org.apache.log4j.Category;
import org.apache.log4j.ConsoleAppender;
@@ -77,7 +77,7 @@ import static org.apache.ignite.IgniteSystemProperties.IGNITE_QUIET;
* logger in your task/job code. See {@link org.apache.ignite.resources.LoggerResource} annotation about logger
* injection.
*/
-public class GridTestLog4jLogger implements IgniteLogger, LoggerNodeIdAware {
+public class GridTestLog4jLogger implements IgniteLogger, LoggerPostfixAware {
/** Appenders. */
private static Collection<FileAppender> fileAppenders = new GridConcurrentHashSet<>();
@@ -102,9 +102,9 @@ public class GridTestLog4jLogger implements IgniteLogger, LoggerNodeIdAware {
/** Quiet flag. */
private final boolean quiet;
- /** Node ID. */
+ /** Postfix. */
@GridToStringExclude
- private UUID nodeId;
+ private String postfix;
/**
* Creates new logger and automatically detects if root logger already
@@ -407,13 +407,18 @@ public class GridTestLog4jLogger implements IgniteLogger, LoggerNodeIdAware {
/** {@inheritDoc} */
@Override public void setNodeId(UUID nodeId) {
- A.notNull(nodeId, "nodeId");
+ setPostfix(U.id8(nodeId));
+ }
+
+ /** {@inheritDoc} */
+ @Override public void setPostfix(String postfix) {
+ A.notNull(postfix, "postfix");
- this.nodeId = nodeId;
+ this.postfix = postfix;
for (FileAppender a : fileAppenders) {
- if (a instanceof LoggerNodeIdAware) {
- ((LoggerNodeIdAware)a).setNodeId(nodeId);
+ if (a instanceof LoggerPostfixAware) {
+ ((LoggerPostfixAware)a).setPostfix(postfix);
a.activateOptions();
}
@@ -422,7 +427,7 @@ public class GridTestLog4jLogger implements IgniteLogger, LoggerNodeIdAware {
/** {@inheritDoc} */
@Override public UUID getNodeId() {
- return nodeId;
+ throw new UnsupportedOperationException("getNodeId");
}
/**
diff --git a/modules/log4j/src/main/java/org/apache/ignite/logger/log4j/Log4JLogger.java b/modules/log4j/src/main/java/org/apache/ignite/logger/log4j/Log4JLogger.java
index ec0a5b3..fbcfc08 100644
--- a/modules/log4j/src/main/java/org/apache/ignite/logger/log4j/Log4JLogger.java
+++ b/modules/log4j/src/main/java/org/apache/ignite/logger/log4j/Log4JLogger.java
@@ -33,7 +33,7 @@ import org.apache.ignite.internal.util.typedef.internal.A;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteClosure;
-import org.apache.ignite.logger.LoggerNodeIdAware;
+import org.apache.ignite.logger.LoggerPostfixAware;
import org.apache.log4j.Appender;
import org.apache.log4j.Category;
import org.apache.log4j.ConsoleAppender;
@@ -79,7 +79,7 @@ import static org.apache.ignite.IgniteSystemProperties.IGNITE_QUIET;
* logger in your task/job code. See {@link org.apache.ignite.resources.LoggerResource} annotation about logger
* injection.
*/
-public class Log4JLogger implements IgniteLogger, LoggerNodeIdAware, Log4jFileAware {
+public class Log4JLogger implements IgniteLogger, LoggerPostfixAware, Log4jFileAware {
/** Appenders. */
private static Collection<FileAppender> fileAppenders = new GridConcurrentHashSet<>();
@@ -503,9 +503,14 @@ public class Log4JLogger implements IgniteLogger, LoggerNodeIdAware, Log4jFileAw
@Override public void setNodeId(UUID nodeId) {
A.notNull(nodeId, "nodeId");
+ postfix(nodeId, U.id8(nodeId));
+ }
+
+ /** */
+ private void postfix(UUID nodeId, String postfix) {
this.nodeId = nodeId;
- updateFilePath(new Log4jNodeIdFilePath(nodeId));
+ updateFilePath(new Log4jNodeIdFilePath(postfix));
}
/** {@inheritDoc} */
@@ -513,6 +518,13 @@ public class Log4JLogger implements IgniteLogger, LoggerNodeIdAware, Log4jFileAw
return nodeId;
}
+ /** {@inheritDoc} */
+ @Override public void setPostfix(String postfix) {
+ A.notNull(postfix, "postfix");
+
+ postfix(nodeId, postfix);
+ }
+
/**
* Gets files for all registered file appenders.
*
diff --git a/modules/log4j/src/main/java/org/apache/ignite/logger/log4j/Log4jNodeIdFilePath.java b/modules/log4j/src/main/java/org/apache/ignite/logger/log4j/Log4jNodeIdFilePath.java
index d4d1892..813f1e8 100644
--- a/modules/log4j/src/main/java/org/apache/ignite/logger/log4j/Log4jNodeIdFilePath.java
+++ b/modules/log4j/src/main/java/org/apache/ignite/logger/log4j/Log4jNodeIdFilePath.java
@@ -18,7 +18,6 @@
package org.apache.ignite.logger.log4j;
import java.io.File;
-import java.util.UUID;
import org.apache.ignite.IgniteSystemProperties;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.internal.U;
@@ -32,29 +31,29 @@ class Log4jNodeIdFilePath implements IgniteClosure<String, String> {
private static final long serialVersionUID = 0L;
/** Node id. */
- private final UUID nodeId;
+ private final String postfix;
/**
* Creates new instance.
*
- * @param id Node id.
+ * @param postfix Postfix.
*/
- Log4jNodeIdFilePath(UUID id) {
- nodeId = id;
+ Log4jNodeIdFilePath(String postfix) {
+ this.postfix = postfix;
}
/** {@inheritDoc} */
@Override public String apply(String oldPath) {
if (!F.isEmpty(U.IGNITE_LOG_DIR))
- return U.nodeIdLogFileName(nodeId, new File(U.IGNITE_LOG_DIR, "ignite.log").getAbsolutePath());
+ return U.logFileName(postfix, new File(U.IGNITE_LOG_DIR, "ignite.log").getAbsolutePath());
if (oldPath != null) // fileName could be null if IGNITE_HOME is not defined.
- return U.nodeIdLogFileName(nodeId, oldPath);
+ return U.logFileName(postfix, oldPath);
String tmpDir = IgniteSystemProperties.getString("java.io.tmpdir");
if (tmpDir != null)
- return U.nodeIdLogFileName(nodeId, new File(tmpDir, "ignite.log").getAbsolutePath());
+ return U.logFileName(postfix, new File(tmpDir, "ignite.log").getAbsolutePath());
System.err.println("Failed to get tmp directory for log file.");
diff --git a/modules/log4j2/src/main/java/org/apache/ignite/logger/log4j2/Log4J2Logger.java b/modules/log4j2/src/main/java/org/apache/ignite/logger/log4j2/Log4J2Logger.java
index 0f5c313..665be45 100644
--- a/modules/log4j2/src/main/java/org/apache/ignite/logger/log4j2/Log4J2Logger.java
+++ b/modules/log4j2/src/main/java/org/apache/ignite/logger/log4j2/Log4J2Logger.java
@@ -31,7 +31,7 @@ import org.apache.ignite.internal.util.typedef.internal.A;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteClosure;
-import org.apache.ignite.logger.LoggerNodeIdAware;
+import org.apache.ignite.logger.LoggerPostfixAware;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Marker;
@@ -81,7 +81,7 @@ import static org.apache.ignite.IgniteSystemProperties.IGNITE_QUIET;
* logger in your task/job code. See {@link org.apache.ignite.resources.LoggerResource} annotation about logger
* injection.
*/
-public class Log4J2Logger implements IgniteLogger, LoggerNodeIdAware {
+public class Log4J2Logger implements IgniteLogger, LoggerPostfixAware {
/** */
private static final String NODE_ID = "nodeId";
@@ -387,10 +387,14 @@ public class Log4J2Logger implements IgniteLogger, LoggerNodeIdAware {
@Override public void setNodeId(UUID nodeId) {
A.notNull(nodeId, "nodeId");
+ postfix(nodeId, U.id8(nodeId));
+ }
+
+ private void postfix(UUID nodeId, String postfix) {
this.nodeId = nodeId;
- // Set nodeId as system variable to be used at configuration.
- System.setProperty(NODE_ID, U.id8(nodeId));
+ // Set postfix as system variable to be used at configuration.
+ System.setProperty(NODE_ID, postfix);
if (inited) {
final LoggerContext ctx = impl.getContext();
@@ -415,6 +419,13 @@ public class Log4J2Logger implements IgniteLogger, LoggerNodeIdAware {
return nodeId;
}
+ /** {@inheritDoc} */
+ @Override public void setPostfix(String postfix) {
+ A.notNull(postfix, "nodeId");
+
+ postfix(null, postfix);
+ }
+
/**
* Gets {@link IgniteLogger} wrapper around log4j logger for the given
* category. If category is {@code null}, then root logger is returned. If
diff --git a/modules/log4j2/src/test/java/org/apache/ignite/logger/log4j2/Log4j2LoggerSelfTest.java b/modules/log4j2/src/test/java/org/apache/ignite/logger/log4j2/Log4j2LoggerSelfTest.java
index 3ebd15d..fcc40b8 100644
--- a/modules/log4j2/src/test/java/org/apache/ignite/logger/log4j2/Log4j2LoggerSelfTest.java
+++ b/modules/log4j2/src/test/java/org/apache/ignite/logger/log4j2/Log4j2LoggerSelfTest.java
@@ -26,7 +26,7 @@ import org.apache.ignite.IgniteLogger;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.internal.util.typedef.G;
import org.apache.ignite.internal.util.typedef.internal.U;
-import org.apache.ignite.logger.LoggerNodeIdAware;
+import org.apache.ignite.logger.LoggerPostfixAware;
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
import org.apache.ignite.testframework.GridTestUtils;
@@ -70,7 +70,9 @@ public class Log4j2LoggerSelfTest {
assertTrue(log.toString().contains("Log4J2Logger"));
assertTrue(log.toString().contains(xml.getPath()));
- ((LoggerNodeIdAware)log).setNodeId(UUID.randomUUID());
+ UUID id = UUID.randomUUID();
+ ((LoggerPostfixAware)log).setNodeId(id);
+ assertEquals(id, ((LoggerPostfixAware)log).getNodeId());
checkLog(log);
}
@@ -93,7 +95,9 @@ public class Log4j2LoggerSelfTest {
assertTrue(log.toString().contains("Log4J2Logger"));
assertTrue(log.toString().contains(url.getPath()));
- ((LoggerNodeIdAware)log).setNodeId(UUID.randomUUID());
+ UUID id = UUID.randomUUID();
+ ((LoggerPostfixAware)log).setNodeId(id);
+ assertEquals(id, ((LoggerPostfixAware)log).getNodeId());
checkLog(log);
}
@@ -110,7 +114,9 @@ public class Log4j2LoggerSelfTest {
assertTrue(log.toString().contains("Log4J2Logger"));
assertTrue(log.toString().contains(LOG_PATH_TEST));
- ((LoggerNodeIdAware)log).setNodeId(UUID.randomUUID());
+ UUID id = UUID.randomUUID();
+ ((LoggerPostfixAware)log).setNodeId(id);
+ assertEquals(id, ((LoggerPostfixAware)log).getNodeId());
checkLog(log);
}
@@ -140,6 +146,10 @@ public class Log4j2LoggerSelfTest {
new Log4J2Logger(LOG_PATH_TEST).setNodeId(id);
assertEquals(U.id8(id), System.getProperty("nodeId"));
+
+ new Log4J2Logger(LOG_PATH_TEST).setPostfix("myapp");
+
+ assertEquals("myapp", System.getProperty("nodeId"));
}
/**