# gg-9470-rename
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/ba7a05db Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/ba7a05db Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/ba7a05db Branch: refs/heads/master Commit: ba7a05dbf134a1eb25ca3cf0244c9374e0e82df9 Parents: 167133f Author: sboikov <sboi...@gridgain.com> Authored: Thu Dec 4 21:42:49 2014 +0300 Committer: sboikov <sboi...@gridgain.com> Committed: Thu Dec 4 21:42:49 2014 +0300 ---------------------------------------------------------------------- config/java.util.logging.properties | 4 +- config/router/default-router.xml | 2 +- .../processors/rest/GridTestBinaryClient.java | 2 +- .../processors/rest/GridTestMemcacheClient.java | 2 +- .../ignite/logger/GridLoggerNodeIdAware.java | 31 -- .../apache/ignite/logger/GridNullLogger.java | 83 ---- .../ignite/logger/IgniteLoggerNodeIdAware.java | 31 ++ .../apache/ignite/logger/IgniteNullLogger.java | 83 ++++ .../ignite/logger/java/GridJavaLogger.java | 382 ------------------- .../logger/java/GridJavaLoggerFileHandler.java | 182 --------- .../logger/java/GridJavaLoggerFormatter.java | 71 ---- .../ignite/logger/java/IgniteJavaLogger.java | 382 +++++++++++++++++++ .../java/IgniteJavaLoggerFileHandler.java | 182 +++++++++ .../logger/java/IgniteJavaLoggerFormatter.java | 71 ++++ .../GridClientConnectionManagerAdapter.java | 2 +- .../client/router/impl/GridTcpRouterImpl.java | 2 +- .../gridgain/grid/GridBasicWarmupClosure.java | 2 +- .../org/gridgain/grid/kernal/GridGainEx.java | 6 +- .../grid/kernal/GridLifecycleAwareSelfTest.java | 2 +- .../grid/logger/java/GridJavaLoggerTest.java | 6 +- .../marshaller/GridMarshallerResourceBean.java | 2 +- ...artupWithSpecifiedWorkDirectorySelfTest.java | 4 +- ...tartupWithUndefinedGridGainHomeSelfTest.java | 2 +- .../shmem/GridGgfsSharedMemoryTestClient.java | 2 +- .../shmem/GridIpcSharedMemoryFakeClient.java | 6 +- .../GridIpcSharedMemoryBenchmarkWriter.java | 2 +- .../logger/GridLog4jRollingFileAppender.java | 2 +- .../junits/logger/GridTestLog4jLogger.java | 6 +- .../grid/logger/log4j/GridLog4jLogger.java | 2 +- 29 files changed, 778 insertions(+), 778 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/config/java.util.logging.properties ---------------------------------------------------------------------- diff --git a/config/java.util.logging.properties b/config/java.util.logging.properties index d3cf472..aa28135 100644 --- a/config/java.util.logging.properties +++ b/config/java.util.logging.properties @@ -54,14 +54,14 @@ handlers=java.util.logging.ConsoleHandler, org.gridgain.grid.logger.java.GridJav # Console handler logs all messages with importance level `INFO` and above # into standard error stream (`System.err`). # -java.util.logging.ConsoleHandler.formatter=org.apache.ignite.logger.java.GridJavaLoggerFormatter +java.util.logging.ConsoleHandler.formatter=org.apache.ignite.logger.java.IgniteJavaLoggerFormatter java.util.logging.ConsoleHandler.level=INFO # # File handler logs all messages into files with pattern `gridgain-%{id8}.%g.log` # under `$GRIDGAIN_HOME/work/log/` directory. The placeholder `%{id8}` is a truncated node ID. # -org.gridgain.grid.logger.java.GridJavaLoggerFileHandler.formatter=org.apache.ignite.logger.java.GridJavaLoggerFormatter +org.gridgain.grid.logger.java.GridJavaLoggerFileHandler.formatter=org.apache.ignite.logger.java.IgniteJavaLoggerFormatter org.gridgain.grid.logger.java.GridJavaLoggerFileHandler.pattern=gridgain-%{id8}.%g.log org.gridgain.grid.logger.java.GridJavaLoggerFileHandler.level=INFO org.gridgain.grid.logger.java.GridJavaLoggerFileHandler.limit=10485760 http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/config/router/default-router.xml ---------------------------------------------------------------------- diff --git a/config/router/default-router.xml b/config/router/default-router.xml index d4fd036..735d347 100644 --- a/config/router/default-router.xml +++ b/config/router/default-router.xml @@ -41,5 +41,5 @@ <!-- Logger with the same configuration as in default grid instances. --> - <bean id="router.log" class="org.apache.ignite.logger.java.GridJavaLogger"/> + <bean id="router.log" class="org.apache.ignite.logger.java.IgniteJavaLogger"/> </beans> http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridTestBinaryClient.java ---------------------------------------------------------------------- diff --git a/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridTestBinaryClient.java b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridTestBinaryClient.java index 5397115..d2adfc0 100644 --- a/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridTestBinaryClient.java +++ b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridTestBinaryClient.java @@ -34,7 +34,7 @@ import static org.gridgain.grid.kernal.processors.rest.client.message.GridClient */ final class GridTestBinaryClient { /** Logger. */ - private final IgniteLogger log = new GridJavaLogger(); + private final IgniteLogger log = new IgniteJavaLogger(); /** Marshaller. */ private final GridClientMarshaller marsh = new GridClientOptimizedMarshaller(); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridTestMemcacheClient.java ---------------------------------------------------------------------- diff --git a/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridTestMemcacheClient.java b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridTestMemcacheClient.java index 23656b9..4f7ac77 100644 --- a/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridTestMemcacheClient.java +++ b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridTestMemcacheClient.java @@ -58,7 +58,7 @@ final class GridTestMemcacheClient { private static final short BYTE_ARR_FLAG = (8 << 8); /** Logger. */ - private final IgniteLogger log = new GridJavaLogger(); + private final IgniteLogger log = new IgniteJavaLogger(); /** JDK marshaller. */ private final GridMarshaller jdkMarshaller = new GridJdkMarshaller(); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/core/src/main/java/org/apache/ignite/logger/GridLoggerNodeIdAware.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/logger/GridLoggerNodeIdAware.java b/modules/core/src/main/java/org/apache/ignite/logger/GridLoggerNodeIdAware.java deleted file mode 100644 index 7ddcd64..0000000 --- a/modules/core/src/main/java/org/apache/ignite/logger/GridLoggerNodeIdAware.java +++ /dev/null @@ -1,31 +0,0 @@ -/* @java.file.header */ - -/* _________ _____ __________________ _____ - * __ ____/___________(_)______ /__ ____/______ ____(_)_______ - * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \ - * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / / - * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/ - */ - -package org.apache.ignite.logger; - -import java.util.*; - -/** - * Interface for GridGain file appenders to attach node ID to log file names. - */ -public interface GridLoggerNodeIdAware { - /** - * Sets node ID. - * - * @param nodeId Node ID. - */ - public void setNodeId(UUID nodeId); - - /** - * Gets node ID. - * - * @return Node ID. - */ - public UUID getNodeId(); -} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/core/src/main/java/org/apache/ignite/logger/GridNullLogger.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/logger/GridNullLogger.java b/modules/core/src/main/java/org/apache/ignite/logger/GridNullLogger.java deleted file mode 100644 index dfb7e31..0000000 --- a/modules/core/src/main/java/org/apache/ignite/logger/GridNullLogger.java +++ /dev/null @@ -1,83 +0,0 @@ -/* @java.file.header */ - -/* _________ _____ __________________ _____ - * __ ____/___________(_)______ /__ ____/______ ____(_)_______ - * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \ - * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / / - * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/ - */ - -package org.apache.ignite.logger; - -import org.apache.ignite.*; -import org.jetbrains.annotations.*; - -/** - * Logger which does not output anything. - */ -public class GridNullLogger implements IgniteLogger { - /** {@inheritDoc} */ - @Override public IgniteLogger getLogger(Object ctgr) { - return this; - } - - /** {@inheritDoc} */ - @Override public void trace(String msg) { - // No-op. - } - - /** {@inheritDoc} */ - @Override public void debug(String msg) { - // No-op. - } - - /** {@inheritDoc} */ - @Override public void info(String msg) { - // No-op. - } - - /** {@inheritDoc} */ - @Override public void warning(String msg) { - // No-op. - } - - /** {@inheritDoc} */ - @Override public void warning(String msg, @Nullable Throwable e) { - // No-op. - } - - /** {@inheritDoc} */ - @Override public void error(String msg) { - // No-op. - } - - /** {@inheritDoc} */ - @Override public void error(String msg, @Nullable Throwable e) { - // No-op. - } - - /** {@inheritDoc} */ - @Override public boolean isTraceEnabled() { - return false; - } - - /** {@inheritDoc} */ - @Override public boolean isDebugEnabled() { - return false; - } - - /** {@inheritDoc} */ - @Override public boolean isInfoEnabled() { - return false; - } - - /** {@inheritDoc} */ - @Override public boolean isQuiet() { - return false; - } - - /** {@inheritDoc} */ - @Nullable @Override public String fileName() { - return null; - } -} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/core/src/main/java/org/apache/ignite/logger/IgniteLoggerNodeIdAware.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/logger/IgniteLoggerNodeIdAware.java b/modules/core/src/main/java/org/apache/ignite/logger/IgniteLoggerNodeIdAware.java new file mode 100644 index 0000000..146ed05 --- /dev/null +++ b/modules/core/src/main/java/org/apache/ignite/logger/IgniteLoggerNodeIdAware.java @@ -0,0 +1,31 @@ +/* @java.file.header */ + +/* _________ _____ __________________ _____ + * __ ____/___________(_)______ /__ ____/______ ____(_)_______ + * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \ + * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / / + * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/ + */ + +package org.apache.ignite.logger; + +import java.util.*; + +/** + * Interface for GridGain file appenders to attach node ID to log file names. + */ +public interface IgniteLoggerNodeIdAware { + /** + * Sets node ID. + * + * @param nodeId Node ID. + */ + public void setNodeId(UUID nodeId); + + /** + * Gets node ID. + * + * @return Node ID. + */ + public UUID getNodeId(); +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/core/src/main/java/org/apache/ignite/logger/IgniteNullLogger.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/logger/IgniteNullLogger.java b/modules/core/src/main/java/org/apache/ignite/logger/IgniteNullLogger.java new file mode 100644 index 0000000..ad337da --- /dev/null +++ b/modules/core/src/main/java/org/apache/ignite/logger/IgniteNullLogger.java @@ -0,0 +1,83 @@ +/* @java.file.header */ + +/* _________ _____ __________________ _____ + * __ ____/___________(_)______ /__ ____/______ ____(_)_______ + * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \ + * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / / + * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/ + */ + +package org.apache.ignite.logger; + +import org.apache.ignite.*; +import org.jetbrains.annotations.*; + +/** + * Logger which does not output anything. + */ +public class IgniteNullLogger implements IgniteLogger { + /** {@inheritDoc} */ + @Override public IgniteLogger getLogger(Object ctgr) { + return this; + } + + /** {@inheritDoc} */ + @Override public void trace(String msg) { + // No-op. + } + + /** {@inheritDoc} */ + @Override public void debug(String msg) { + // No-op. + } + + /** {@inheritDoc} */ + @Override public void info(String msg) { + // No-op. + } + + /** {@inheritDoc} */ + @Override public void warning(String msg) { + // No-op. + } + + /** {@inheritDoc} */ + @Override public void warning(String msg, @Nullable Throwable e) { + // No-op. + } + + /** {@inheritDoc} */ + @Override public void error(String msg) { + // No-op. + } + + /** {@inheritDoc} */ + @Override public void error(String msg, @Nullable Throwable e) { + // No-op. + } + + /** {@inheritDoc} */ + @Override public boolean isTraceEnabled() { + return false; + } + + /** {@inheritDoc} */ + @Override public boolean isDebugEnabled() { + return false; + } + + /** {@inheritDoc} */ + @Override public boolean isInfoEnabled() { + return false; + } + + /** {@inheritDoc} */ + @Override public boolean isQuiet() { + return false; + } + + /** {@inheritDoc} */ + @Nullable @Override public String fileName() { + return null; + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/core/src/main/java/org/apache/ignite/logger/java/GridJavaLogger.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/logger/java/GridJavaLogger.java b/modules/core/src/main/java/org/apache/ignite/logger/java/GridJavaLogger.java deleted file mode 100644 index d2c8ff4..0000000 --- a/modules/core/src/main/java/org/apache/ignite/logger/java/GridJavaLogger.java +++ /dev/null @@ -1,382 +0,0 @@ -/* @java.file.header */ - -/* _________ _____ __________________ _____ - * __ ____/___________(_)______ /__ ____/______ ____(_)_______ - * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \ - * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / / - * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/ - */ - -package org.apache.ignite.logger.java; - -import org.apache.ignite.*; -import org.apache.ignite.logger.*; -import org.gridgain.grid.*; -import org.gridgain.grid.util.lang.*; -import org.gridgain.grid.util.typedef.*; -import org.gridgain.grid.util.typedef.internal.*; -import org.jetbrains.annotations.*; - -import java.io.*; -import java.net.*; -import java.util.*; -import java.util.logging.*; - -import static java.util.logging.Level.*; -import static org.gridgain.grid.GridSystemProperties.*; - -/** - * Logger to use with Java logging. Implementation simply delegates to Java Logging. - * <p> - * Here is an example of configuring Java logger in GridGain configuration Spring - * file to work over log4j implementation. Note that we use the same configuration file - * as we provide by default: - * <pre name="code" class="xml"> - * ... - * <property name="gridLogger"> - * <bean class="org.gridgain.grid.logger.java.GridJavaLogger"> - * <constructor-arg type="java.util.logging.Logger"> - * <bean class="java.util.logging.Logger"> - * <constructor-arg type="java.lang.String" value="global"/> - * </bean> - * </constructor-arg> - * </bean> - * </property> - * ... - * </pre> - * or - * <pre name="code" class="xml"> - * ... - * <property name="gridLogger"> - * <bean class="org.gridgain.grid.logger.java.GridJavaLogger"/> - * </property> - * ... - * </pre> - * And the same configuration if you'd like to configure GridGain in your code: - * <pre name="code" class="java"> - * GridConfiguration cfg = new GridConfiguration(); - * ... - * GridLogger log = new GridJavaLogger(Logger.global); - * ... - * cfg.setGridLogger(log); - * </pre> - * or which is actually the same: - * <pre name="code" class="java"> - * GridConfiguration cfg = new GridConfiguration(); - * ... - * GridLogger log = new GridJavaLogger(); - * ... - * cfg.setGridLogger(log); - * </pre> - * Please take a look at <a target=_new href="http://java.sun.com/j2se/1.4.2/docs/api20/java/util/logging/Logger.html">Logger javadoc</a> - * for additional information. - * <p> - * It's recommended to use GridGain logger injection instead of using/instantiating - * logger in your task/job code. See {@link org.apache.ignite.resources.IgniteLoggerResource} annotation about logger - * injection. - */ -public class GridJavaLogger extends GridMetadataAwareAdapter implements IgniteLogger, GridLoggerNodeIdAware { - /** */ - private static final long serialVersionUID = 0L; - - /** */ - public static final String DFLT_CONFIG_PATH = "config/java.util.logging.properties"; - - /** */ - private static final Object mux = new Object(); - - /** */ - private static volatile boolean inited; - - /** */ - private static volatile boolean quiet0; - - /** Java Logging implementation proxy. */ - @SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized") - private Logger impl; - - /** Quiet flag. */ - private final boolean quiet; - - /** Node ID. */ - private volatile UUID nodeId; - - /** - * Creates new logger. - */ - public GridJavaLogger() { - this(!isConfigured()); - } - - /** - * Checks if logger is already configured within this VM or not. - * - * @return {@code True} if logger was already configured, {@code false} otherwise. - */ - public static boolean isConfigured() { - return System.getProperty("java.util.logging.config.file") != null; - } - - /** - * Reads default JUL configuration. - */ - private void defaultConfiguration() { - final URL cfgUrl = U.resolveGridGainUrl(DFLT_CONFIG_PATH); - - if (cfgUrl == null) { - error("Failed to resolve default logging config file: " + DFLT_CONFIG_PATH); - - return; - } - - try (InputStream in = cfgUrl.openStream()) { - LogManager.getLogManager().readConfiguration(in); - } - catch (IOException e) { - error("Failed to read logging configuration: " + cfgUrl, e); - } - } - - /** - * Creates new logger. - * - * @param init If {@code true}, then a default console appender will be created. - * If {@code false}, then no implicit initialization will take place, - * and java logger should be configured prior to calling this constructor. - */ - public GridJavaLogger(boolean init) { - impl = Logger.getLogger(""); - - if (init) { - // Implementation has already been inited, passing NULL. - configure(null); - - quiet = quiet0; - } - else - quiet = true; - } - - /** - * Creates new logger with given implementation. - * - * @param impl Java Logging implementation to use. - */ - public GridJavaLogger(final Logger impl) { - assert impl != null; - - configure(impl); - - quiet = quiet0; - } - - /** {@inheritDoc} */ - @Override public IgniteLogger getLogger(Object ctgr) { - return new GridJavaLogger(ctgr == null ? Logger.getLogger("") : Logger.getLogger( - ctgr instanceof Class ? ((Class)ctgr).getName() : String.valueOf(ctgr))); - } - - /** - * Configures handlers when needed. - * - * @param initImpl Optional log implementation. - */ - private void configure(@Nullable Logger initImpl) { - if (initImpl != null) - impl = initImpl; - - if (inited) - return; - - synchronized (mux) { - if (inited) - return; - - if (isConfigured()) { - boolean consoleHndFound = findHandler(impl, ConsoleHandler.class) != null; - - // User configured console appender, thus log is not quiet. - quiet0 = !consoleHndFound; - inited = true; - - return; - } - - defaultConfiguration(); - - boolean quiet = Boolean.valueOf(System.getProperty(GG_QUIET, "true")); - boolean useConsoleAppender = Boolean.valueOf(System.getProperty(GG_CONSOLE_APPENDER, "true")); - - if (useConsoleAppender) { - ConsoleHandler consoleHnd = findHandler(impl, ConsoleHandler.class); - - if (consoleHnd != null) - consoleHnd.setLevel(quiet ? SEVERE : INFO); - else - System.err.println("Console logging handler is not configured."); - } - else { - Handler[] handlers = Logger.getLogger("").getHandlers(); - - if (!F.isEmpty(handlers)) { - for (Handler h : handlers) { - if (h instanceof ConsoleHandler) - impl.removeHandler(h); - } - } - } - - quiet0 = quiet; - inited = true; - } - } - - /** {@inheritDoc} */ - @Override public void trace(String msg) { - if (!impl.isLoggable(FINEST)) - warning("Logging at TRACE level without checking if TRACE level is enabled: " + msg); - - impl.finest(msg); - } - - /** {@inheritDoc} */ - @Override public void debug(String msg) { - if (!impl.isLoggable(FINE)) - warning("Logging at DEBUG level without checking if DEBUG level is enabled: " + msg); - - impl.fine(msg); - } - - /** {@inheritDoc} */ - @Override public void info(String msg) { - if (!impl.isLoggable(INFO)) - warning("Logging at INFO level without checking if INFO level is enabled: " + msg); - - impl.info(msg); - } - - /** {@inheritDoc} */ - @Override public void warning(String msg) { - impl.warning(msg); - } - - /** {@inheritDoc} */ - @Override public void warning(String msg, @Nullable Throwable e) { - impl.log(WARNING, msg, e); - } - - /** {@inheritDoc} */ - @Override public void error(String msg) { - impl.severe(msg); - } - - /** {@inheritDoc} */ - @Override public boolean isQuiet() { - return quiet; - } - - /** {@inheritDoc} */ - @Override public void error(String msg, @Nullable Throwable e) { - impl.log(SEVERE, msg, e); - } - - /** {@inheritDoc} */ - @Override public boolean isTraceEnabled() { - return impl.isLoggable(FINEST); - } - - /** {@inheritDoc} */ - @Override public boolean isDebugEnabled() { - return impl.isLoggable(FINE); - } - - /** {@inheritDoc} */ - @Override public boolean isInfoEnabled() { - return impl.isLoggable(INFO); - } - - /** {@inheritDoc} */ - @Nullable @Override public String fileName() { - GridJavaLoggerFileHandler gridFileHnd = findHandler(impl, GridJavaLoggerFileHandler.class); - - if (gridFileHnd != null) - return gridFileHnd.fileName(); - - FileHandler fileHnd = findHandler(impl, FileHandler.class); - - return fileName(fileHnd); - } - - /** - * @param fileHnd File handler. - * @return Current log file or {@code null} if it can not be retrieved from file handler. - */ - @Nullable static String fileName(FileHandler fileHnd) { - if (fileHnd == null) - return null; - - try { - File[] logFiles = U.field(fileHnd, "files"); - - return logFiles[0].getAbsolutePath(); - } - catch (Exception ignored) { - return null; - } - } - - /** {@inheritDoc} */ - @Override public void setNodeId(UUID nodeId) { - A.notNull(nodeId, "nodeId"); - - if (this.nodeId != null) - return; - - synchronized (mux) { - // Double check. - if (this.nodeId != null) - return; - - this.nodeId = nodeId; - } - - GridJavaLoggerFileHandler fileHnd = findHandler(impl, GridJavaLoggerFileHandler.class); - - if (fileHnd == null) - return; - - try { - fileHnd.nodeId(nodeId); - } - catch (GridException | IOException e) { - throw new RuntimeException("Failed to enable file handler.", e); - } - } - - /** {@inheritDoc} */ - @Override public UUID getNodeId() { - return nodeId; - } - - /** - * Returns first found handler of specified class type or {@code null} if that handler isn't configured. - * - * @param log Logger. - * @param cls Class. - * @param <T> Class type. - * @return First found handler of specified class type or {@code null} if that handler isn't configured. - */ - @SuppressWarnings("unchecked") - private static <T> T findHandler(Logger log, Class<T> cls) { - while (log != null) { - for (Handler hnd : log.getHandlers()) { - if (cls.isInstance(hnd)) - return (T)hnd; - } - - log = log.getParent(); - } - - return null; - } -} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/core/src/main/java/org/apache/ignite/logger/java/GridJavaLoggerFileHandler.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/logger/java/GridJavaLoggerFileHandler.java b/modules/core/src/main/java/org/apache/ignite/logger/java/GridJavaLoggerFileHandler.java deleted file mode 100644 index 61340dd..0000000 --- a/modules/core/src/main/java/org/apache/ignite/logger/java/GridJavaLoggerFileHandler.java +++ /dev/null @@ -1,182 +0,0 @@ -/* @java.file.header */ - -/* _________ _____ __________________ _____ - * __ ____/___________(_)______ /__ ____/______ ____(_)_______ - * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \ - * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / / - * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/ - */ - -package org.apache.ignite.logger.java; - -import org.gridgain.grid.*; -import org.gridgain.grid.util.typedef.*; -import org.gridgain.grid.util.typedef.internal.*; -import org.jetbrains.annotations.*; - -import java.io.*; -import java.util.*; -import java.util.logging.*; - -/** - * File logging handler which skips all the messages until node ID is set. - */ -public final class GridJavaLoggerFileHandler extends StreamHandler { - /** Log manager. */ - private static final LogManager manager = LogManager.getLogManager(); - - /** Handler delegate. */ - private volatile FileHandler delegate; - - /** {@inheritDoc} */ - @SuppressWarnings("NonSynchronizedMethodOverridesSynchronizedMethod") - @Override public void publish(LogRecord record) { - FileHandler delegate0 = delegate; - - if (delegate0 != null) - delegate0.publish(record); - } - - /** {@inheritDoc} */ - @SuppressWarnings("NonSynchronizedMethodOverridesSynchronizedMethod") - @Override public void flush() { - FileHandler delegate0 = delegate; - - if (delegate0 != null) - delegate0.flush(); - } - - /** {@inheritDoc} */ - @SuppressWarnings("NonSynchronizedMethodOverridesSynchronizedMethod") - @Override public void close() throws SecurityException { - FileHandler delegate0 = delegate; - - if (delegate0 != null) - delegate0.close(); - } - - /** {@inheritDoc} */ - @SuppressWarnings("NonSynchronizedMethodOverridesSynchronizedMethod") - @Override public boolean isLoggable(LogRecord record) { - FileHandler delegate0 = delegate; - - return delegate0 != null && delegate0.isLoggable(record); - } - - /** - * Sets Node id and instantiates {@link FileHandler} delegate. - * - * @param nodeId Node id. - */ - public void nodeId(UUID nodeId) throws GridException, IOException { - if (delegate != null) - return; - - String clsName = getClass().getName(); - - String ptrn = manager.getProperty(clsName + ".pattern"); - - if (ptrn == null) - ptrn = "gridgain-%{id8}.%g.log"; - - ptrn = new File(logDirectory(), ptrn.replace("%{id8}", U.id8(nodeId))).getAbsolutePath(); - - int limit = getIntProperty(clsName + ".limit", 0); - - if (limit < 0) - limit = 0; - - int cnt = getIntProperty(clsName + ".count", 1); - - if (cnt <= 0) - cnt = 1; - - boolean append = getBooleanProperty(clsName + ".append", false); - - FileHandler delegate0; - - synchronized (this) { - if (delegate != null) - return; - - delegate = delegate0 = new FileHandler(ptrn, limit, cnt, append); - } - - delegate0.setLevel(getLevel()); - delegate0.setFormatter(getFormatter()); - delegate0.setEncoding(getEncoding()); - delegate0.setFilter(getFilter()); - delegate0.setErrorManager(getErrorManager()); - } - - /** - * Returns current log file. - * - * @return Pattern or {@code null} if node id has not been set yet. - */ - @Nullable public String fileName() { - return GridJavaLogger.fileName(delegate); - } - - /** - * Resolves logging directory. - * - * @return Logging directory. - */ - private static File logDirectory() throws GridException { - return !F.isEmpty(U.GRIDGAIN_LOG_DIR) ? new File(U.GRIDGAIN_LOG_DIR) : U.resolveWorkDirectory("log", false); - } - - /** - * Returns integer property from logging configuration. - * - * @param name Property name. - * @param dfltVal Default value. - * @return Parsed property value if it is set and valid or default value otherwise. - */ - private int getIntProperty(String name, int dfltVal) { - String val = manager.getProperty(name); - - if (val == null) - return dfltVal; - - try { - return Integer.parseInt(val.trim()); - } - catch (Exception ex) { - ex.printStackTrace(); - - return dfltVal; - } - } - - /** - * Returns boolean property from logging configuration. - * - * @param name Property name. - * @param dfltVal Default value. - * @return Parsed property value if it is set and valid or default value otherwise. - */ - @SuppressWarnings("SimplifiableIfStatement") - private boolean getBooleanProperty(String name, boolean dfltVal) { - String val = manager.getProperty(name); - - if (val == null) - return dfltVal; - - val = val.toLowerCase(); - - if ("true".equals(val) || "1".equals(val)) - return true; - - if ("false".equals(val) || "0".equals(val)) - return false; - - return dfltVal; - } - - /** {@inheritDoc} */ - @Override public String toString() { - return S.toString(GridJavaLoggerFileHandler.class, this); - } -} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/core/src/main/java/org/apache/ignite/logger/java/GridJavaLoggerFormatter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/logger/java/GridJavaLoggerFormatter.java b/modules/core/src/main/java/org/apache/ignite/logger/java/GridJavaLoggerFormatter.java deleted file mode 100644 index 71d3838..0000000 --- a/modules/core/src/main/java/org/apache/ignite/logger/java/GridJavaLoggerFormatter.java +++ /dev/null @@ -1,71 +0,0 @@ -/* @java.file.header */ - -/* _________ _____ __________________ _____ - * __ ____/___________(_)______ /__ ____/______ ____(_)_______ - * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \ - * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / / - * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/ - */ - -package org.apache.ignite.logger.java; - -import org.gridgain.grid.util.typedef.internal.*; - -import java.io.*; -import java.text.*; -import java.util.*; -import java.util.logging.Formatter; -import java.util.logging.*; - -/** - * Formatter for JUL logger. - */ -public class GridJavaLoggerFormatter extends Formatter { - /** Name for anonymous loggers. */ - public static final String ANONYMOUS_LOGGER_NAME = "UNKNOWN"; - - /** */ - private static final ThreadLocal<SimpleDateFormat> DATE_FORMATTER = new ThreadLocal<SimpleDateFormat>() { - /** {@inheritDoc} */ - @Override protected SimpleDateFormat initialValue() { - return new SimpleDateFormat("HH:mm:ss,SSS"); - } - }; - - /** {@inheritDoc} */ - @SuppressWarnings("ThrowableResultOfMethodCallIgnored") - @Override public String format(LogRecord record) { - String threadName = Thread.currentThread().getName(); - - String logName = record.getLoggerName(); - - if (logName == null) - logName = ANONYMOUS_LOGGER_NAME; - else if (logName.contains(".")) - logName = logName.substring(logName.lastIndexOf('.') + 1); - - String ex = null; - - if (record.getThrown() != null) { - StringWriter sw = new StringWriter(); - - record.getThrown().printStackTrace(new PrintWriter(sw)); - - String stackTrace = sw.toString(); - - ex = "\n" + stackTrace; - } - - return "[" + DATE_FORMATTER.get().format(new Date(record.getMillis())) + "][" + - record.getLevel() + "][" + - threadName + "][" + - logName + "] " + - record.getMessage() + - (ex == null ? "\n" : ex); - } - - /** {@inheritDoc} */ - @Override public String toString() { - return S.toString(GridJavaLoggerFormatter.class, this); - } -} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/core/src/main/java/org/apache/ignite/logger/java/IgniteJavaLogger.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/logger/java/IgniteJavaLogger.java b/modules/core/src/main/java/org/apache/ignite/logger/java/IgniteJavaLogger.java new file mode 100644 index 0000000..57b6ff9 --- /dev/null +++ b/modules/core/src/main/java/org/apache/ignite/logger/java/IgniteJavaLogger.java @@ -0,0 +1,382 @@ +/* @java.file.header */ + +/* _________ _____ __________________ _____ + * __ ____/___________(_)______ /__ ____/______ ____(_)_______ + * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \ + * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / / + * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/ + */ + +package org.apache.ignite.logger.java; + +import org.apache.ignite.*; +import org.apache.ignite.logger.*; +import org.gridgain.grid.*; +import org.gridgain.grid.util.lang.*; +import org.gridgain.grid.util.typedef.*; +import org.gridgain.grid.util.typedef.internal.*; +import org.jetbrains.annotations.*; + +import java.io.*; +import java.net.*; +import java.util.*; +import java.util.logging.*; + +import static java.util.logging.Level.*; +import static org.gridgain.grid.GridSystemProperties.*; + +/** + * Logger to use with Java logging. Implementation simply delegates to Java Logging. + * <p> + * Here is an example of configuring Java logger in GridGain configuration Spring + * file to work over log4j implementation. Note that we use the same configuration file + * as we provide by default: + * <pre name="code" class="xml"> + * ... + * <property name="gridLogger"> + * <bean class="org.gridgain.grid.logger.java.GridJavaLogger"> + * <constructor-arg type="java.util.logging.Logger"> + * <bean class="java.util.logging.Logger"> + * <constructor-arg type="java.lang.String" value="global"/> + * </bean> + * </constructor-arg> + * </bean> + * </property> + * ... + * </pre> + * or + * <pre name="code" class="xml"> + * ... + * <property name="gridLogger"> + * <bean class="org.gridgain.grid.logger.java.GridJavaLogger"/> + * </property> + * ... + * </pre> + * And the same configuration if you'd like to configure GridGain in your code: + * <pre name="code" class="java"> + * GridConfiguration cfg = new GridConfiguration(); + * ... + * GridLogger log = new GridJavaLogger(Logger.global); + * ... + * cfg.setGridLogger(log); + * </pre> + * or which is actually the same: + * <pre name="code" class="java"> + * GridConfiguration cfg = new GridConfiguration(); + * ... + * GridLogger log = new GridJavaLogger(); + * ... + * cfg.setGridLogger(log); + * </pre> + * Please take a look at <a target=_new href="http://java.sun.com/j2se/1.4.2/docs/api20/java/util/logging/Logger.html">Logger javadoc</a> + * for additional information. + * <p> + * It's recommended to use GridGain logger injection instead of using/instantiating + * logger in your task/job code. See {@link org.apache.ignite.resources.IgniteLoggerResource} annotation about logger + * injection. + */ +public class IgniteJavaLogger extends GridMetadataAwareAdapter implements IgniteLogger, IgniteLoggerNodeIdAware { + /** */ + private static final long serialVersionUID = 0L; + + /** */ + public static final String DFLT_CONFIG_PATH = "config/java.util.logging.properties"; + + /** */ + private static final Object mux = new Object(); + + /** */ + private static volatile boolean inited; + + /** */ + private static volatile boolean quiet0; + + /** Java Logging implementation proxy. */ + @SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized") + private Logger impl; + + /** Quiet flag. */ + private final boolean quiet; + + /** Node ID. */ + private volatile UUID nodeId; + + /** + * Creates new logger. + */ + public IgniteJavaLogger() { + this(!isConfigured()); + } + + /** + * Checks if logger is already configured within this VM or not. + * + * @return {@code True} if logger was already configured, {@code false} otherwise. + */ + public static boolean isConfigured() { + return System.getProperty("java.util.logging.config.file") != null; + } + + /** + * Reads default JUL configuration. + */ + private void defaultConfiguration() { + final URL cfgUrl = U.resolveGridGainUrl(DFLT_CONFIG_PATH); + + if (cfgUrl == null) { + error("Failed to resolve default logging config file: " + DFLT_CONFIG_PATH); + + return; + } + + try (InputStream in = cfgUrl.openStream()) { + LogManager.getLogManager().readConfiguration(in); + } + catch (IOException e) { + error("Failed to read logging configuration: " + cfgUrl, e); + } + } + + /** + * Creates new logger. + * + * @param init If {@code true}, then a default console appender will be created. + * If {@code false}, then no implicit initialization will take place, + * and java logger should be configured prior to calling this constructor. + */ + public IgniteJavaLogger(boolean init) { + impl = Logger.getLogger(""); + + if (init) { + // Implementation has already been inited, passing NULL. + configure(null); + + quiet = quiet0; + } + else + quiet = true; + } + + /** + * Creates new logger with given implementation. + * + * @param impl Java Logging implementation to use. + */ + public IgniteJavaLogger(final Logger impl) { + assert impl != null; + + configure(impl); + + quiet = quiet0; + } + + /** {@inheritDoc} */ + @Override public IgniteLogger getLogger(Object ctgr) { + return new IgniteJavaLogger(ctgr == null ? Logger.getLogger("") : Logger.getLogger( + ctgr instanceof Class ? ((Class)ctgr).getName() : String.valueOf(ctgr))); + } + + /** + * Configures handlers when needed. + * + * @param initImpl Optional log implementation. + */ + private void configure(@Nullable Logger initImpl) { + if (initImpl != null) + impl = initImpl; + + if (inited) + return; + + synchronized (mux) { + if (inited) + return; + + if (isConfigured()) { + boolean consoleHndFound = findHandler(impl, ConsoleHandler.class) != null; + + // User configured console appender, thus log is not quiet. + quiet0 = !consoleHndFound; + inited = true; + + return; + } + + defaultConfiguration(); + + boolean quiet = Boolean.valueOf(System.getProperty(GG_QUIET, "true")); + boolean useConsoleAppender = Boolean.valueOf(System.getProperty(GG_CONSOLE_APPENDER, "true")); + + if (useConsoleAppender) { + ConsoleHandler consoleHnd = findHandler(impl, ConsoleHandler.class); + + if (consoleHnd != null) + consoleHnd.setLevel(quiet ? SEVERE : INFO); + else + System.err.println("Console logging handler is not configured."); + } + else { + Handler[] handlers = Logger.getLogger("").getHandlers(); + + if (!F.isEmpty(handlers)) { + for (Handler h : handlers) { + if (h instanceof ConsoleHandler) + impl.removeHandler(h); + } + } + } + + quiet0 = quiet; + inited = true; + } + } + + /** {@inheritDoc} */ + @Override public void trace(String msg) { + if (!impl.isLoggable(FINEST)) + warning("Logging at TRACE level without checking if TRACE level is enabled: " + msg); + + impl.finest(msg); + } + + /** {@inheritDoc} */ + @Override public void debug(String msg) { + if (!impl.isLoggable(FINE)) + warning("Logging at DEBUG level without checking if DEBUG level is enabled: " + msg); + + impl.fine(msg); + } + + /** {@inheritDoc} */ + @Override public void info(String msg) { + if (!impl.isLoggable(INFO)) + warning("Logging at INFO level without checking if INFO level is enabled: " + msg); + + impl.info(msg); + } + + /** {@inheritDoc} */ + @Override public void warning(String msg) { + impl.warning(msg); + } + + /** {@inheritDoc} */ + @Override public void warning(String msg, @Nullable Throwable e) { + impl.log(WARNING, msg, e); + } + + /** {@inheritDoc} */ + @Override public void error(String msg) { + impl.severe(msg); + } + + /** {@inheritDoc} */ + @Override public boolean isQuiet() { + return quiet; + } + + /** {@inheritDoc} */ + @Override public void error(String msg, @Nullable Throwable e) { + impl.log(SEVERE, msg, e); + } + + /** {@inheritDoc} */ + @Override public boolean isTraceEnabled() { + return impl.isLoggable(FINEST); + } + + /** {@inheritDoc} */ + @Override public boolean isDebugEnabled() { + return impl.isLoggable(FINE); + } + + /** {@inheritDoc} */ + @Override public boolean isInfoEnabled() { + return impl.isLoggable(INFO); + } + + /** {@inheritDoc} */ + @Nullable @Override public String fileName() { + IgniteJavaLoggerFileHandler gridFileHnd = findHandler(impl, IgniteJavaLoggerFileHandler.class); + + if (gridFileHnd != null) + return gridFileHnd.fileName(); + + FileHandler fileHnd = findHandler(impl, FileHandler.class); + + return fileName(fileHnd); + } + + /** + * @param fileHnd File handler. + * @return Current log file or {@code null} if it can not be retrieved from file handler. + */ + @Nullable static String fileName(FileHandler fileHnd) { + if (fileHnd == null) + return null; + + try { + File[] logFiles = U.field(fileHnd, "files"); + + return logFiles[0].getAbsolutePath(); + } + catch (Exception ignored) { + return null; + } + } + + /** {@inheritDoc} */ + @Override public void setNodeId(UUID nodeId) { + A.notNull(nodeId, "nodeId"); + + if (this.nodeId != null) + return; + + synchronized (mux) { + // Double check. + if (this.nodeId != null) + return; + + this.nodeId = nodeId; + } + + IgniteJavaLoggerFileHandler fileHnd = findHandler(impl, IgniteJavaLoggerFileHandler.class); + + if (fileHnd == null) + return; + + try { + fileHnd.nodeId(nodeId); + } + catch (GridException | IOException e) { + throw new RuntimeException("Failed to enable file handler.", e); + } + } + + /** {@inheritDoc} */ + @Override public UUID getNodeId() { + return nodeId; + } + + /** + * Returns first found handler of specified class type or {@code null} if that handler isn't configured. + * + * @param log Logger. + * @param cls Class. + * @param <T> Class type. + * @return First found handler of specified class type or {@code null} if that handler isn't configured. + */ + @SuppressWarnings("unchecked") + private static <T> T findHandler(Logger log, Class<T> cls) { + while (log != null) { + for (Handler hnd : log.getHandlers()) { + if (cls.isInstance(hnd)) + return (T)hnd; + } + + log = log.getParent(); + } + + return null; + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/core/src/main/java/org/apache/ignite/logger/java/IgniteJavaLoggerFileHandler.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/logger/java/IgniteJavaLoggerFileHandler.java b/modules/core/src/main/java/org/apache/ignite/logger/java/IgniteJavaLoggerFileHandler.java new file mode 100644 index 0000000..80d56f3 --- /dev/null +++ b/modules/core/src/main/java/org/apache/ignite/logger/java/IgniteJavaLoggerFileHandler.java @@ -0,0 +1,182 @@ +/* @java.file.header */ + +/* _________ _____ __________________ _____ + * __ ____/___________(_)______ /__ ____/______ ____(_)_______ + * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \ + * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / / + * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/ + */ + +package org.apache.ignite.logger.java; + +import org.gridgain.grid.*; +import org.gridgain.grid.util.typedef.*; +import org.gridgain.grid.util.typedef.internal.*; +import org.jetbrains.annotations.*; + +import java.io.*; +import java.util.*; +import java.util.logging.*; + +/** + * File logging handler which skips all the messages until node ID is set. + */ +public final class IgniteJavaLoggerFileHandler extends StreamHandler { + /** Log manager. */ + private static final LogManager manager = LogManager.getLogManager(); + + /** Handler delegate. */ + private volatile FileHandler delegate; + + /** {@inheritDoc} */ + @SuppressWarnings("NonSynchronizedMethodOverridesSynchronizedMethod") + @Override public void publish(LogRecord record) { + FileHandler delegate0 = delegate; + + if (delegate0 != null) + delegate0.publish(record); + } + + /** {@inheritDoc} */ + @SuppressWarnings("NonSynchronizedMethodOverridesSynchronizedMethod") + @Override public void flush() { + FileHandler delegate0 = delegate; + + if (delegate0 != null) + delegate0.flush(); + } + + /** {@inheritDoc} */ + @SuppressWarnings("NonSynchronizedMethodOverridesSynchronizedMethod") + @Override public void close() throws SecurityException { + FileHandler delegate0 = delegate; + + if (delegate0 != null) + delegate0.close(); + } + + /** {@inheritDoc} */ + @SuppressWarnings("NonSynchronizedMethodOverridesSynchronizedMethod") + @Override public boolean isLoggable(LogRecord record) { + FileHandler delegate0 = delegate; + + return delegate0 != null && delegate0.isLoggable(record); + } + + /** + * Sets Node id and instantiates {@link FileHandler} delegate. + * + * @param nodeId Node id. + */ + public void nodeId(UUID nodeId) throws GridException, IOException { + if (delegate != null) + return; + + String clsName = getClass().getName(); + + String ptrn = manager.getProperty(clsName + ".pattern"); + + if (ptrn == null) + ptrn = "gridgain-%{id8}.%g.log"; + + ptrn = new File(logDirectory(), ptrn.replace("%{id8}", U.id8(nodeId))).getAbsolutePath(); + + int limit = getIntProperty(clsName + ".limit", 0); + + if (limit < 0) + limit = 0; + + int cnt = getIntProperty(clsName + ".count", 1); + + if (cnt <= 0) + cnt = 1; + + boolean append = getBooleanProperty(clsName + ".append", false); + + FileHandler delegate0; + + synchronized (this) { + if (delegate != null) + return; + + delegate = delegate0 = new FileHandler(ptrn, limit, cnt, append); + } + + delegate0.setLevel(getLevel()); + delegate0.setFormatter(getFormatter()); + delegate0.setEncoding(getEncoding()); + delegate0.setFilter(getFilter()); + delegate0.setErrorManager(getErrorManager()); + } + + /** + * Returns current log file. + * + * @return Pattern or {@code null} if node id has not been set yet. + */ + @Nullable public String fileName() { + return IgniteJavaLogger.fileName(delegate); + } + + /** + * Resolves logging directory. + * + * @return Logging directory. + */ + private static File logDirectory() throws GridException { + return !F.isEmpty(U.GRIDGAIN_LOG_DIR) ? new File(U.GRIDGAIN_LOG_DIR) : U.resolveWorkDirectory("log", false); + } + + /** + * Returns integer property from logging configuration. + * + * @param name Property name. + * @param dfltVal Default value. + * @return Parsed property value if it is set and valid or default value otherwise. + */ + private int getIntProperty(String name, int dfltVal) { + String val = manager.getProperty(name); + + if (val == null) + return dfltVal; + + try { + return Integer.parseInt(val.trim()); + } + catch (Exception ex) { + ex.printStackTrace(); + + return dfltVal; + } + } + + /** + * Returns boolean property from logging configuration. + * + * @param name Property name. + * @param dfltVal Default value. + * @return Parsed property value if it is set and valid or default value otherwise. + */ + @SuppressWarnings("SimplifiableIfStatement") + private boolean getBooleanProperty(String name, boolean dfltVal) { + String val = manager.getProperty(name); + + if (val == null) + return dfltVal; + + val = val.toLowerCase(); + + if ("true".equals(val) || "1".equals(val)) + return true; + + if ("false".equals(val) || "0".equals(val)) + return false; + + return dfltVal; + } + + /** {@inheritDoc} */ + @Override public String toString() { + return S.toString(IgniteJavaLoggerFileHandler.class, this); + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/core/src/main/java/org/apache/ignite/logger/java/IgniteJavaLoggerFormatter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/logger/java/IgniteJavaLoggerFormatter.java b/modules/core/src/main/java/org/apache/ignite/logger/java/IgniteJavaLoggerFormatter.java new file mode 100644 index 0000000..62154de --- /dev/null +++ b/modules/core/src/main/java/org/apache/ignite/logger/java/IgniteJavaLoggerFormatter.java @@ -0,0 +1,71 @@ +/* @java.file.header */ + +/* _________ _____ __________________ _____ + * __ ____/___________(_)______ /__ ____/______ ____(_)_______ + * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \ + * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / / + * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/ + */ + +package org.apache.ignite.logger.java; + +import org.gridgain.grid.util.typedef.internal.*; + +import java.io.*; +import java.text.*; +import java.util.*; +import java.util.logging.Formatter; +import java.util.logging.*; + +/** + * Formatter for JUL logger. + */ +public class IgniteJavaLoggerFormatter extends Formatter { + /** Name for anonymous loggers. */ + public static final String ANONYMOUS_LOGGER_NAME = "UNKNOWN"; + + /** */ + private static final ThreadLocal<SimpleDateFormat> DATE_FORMATTER = new ThreadLocal<SimpleDateFormat>() { + /** {@inheritDoc} */ + @Override protected SimpleDateFormat initialValue() { + return new SimpleDateFormat("HH:mm:ss,SSS"); + } + }; + + /** {@inheritDoc} */ + @SuppressWarnings("ThrowableResultOfMethodCallIgnored") + @Override public String format(LogRecord record) { + String threadName = Thread.currentThread().getName(); + + String logName = record.getLoggerName(); + + if (logName == null) + logName = ANONYMOUS_LOGGER_NAME; + else if (logName.contains(".")) + logName = logName.substring(logName.lastIndexOf('.') + 1); + + String ex = null; + + if (record.getThrown() != null) { + StringWriter sw = new StringWriter(); + + record.getThrown().printStackTrace(new PrintWriter(sw)); + + String stackTrace = sw.toString(); + + ex = "\n" + stackTrace; + } + + return "[" + DATE_FORMATTER.get().format(new Date(record.getMillis())) + "][" + + record.getLevel() + "][" + + threadName + "][" + + logName + "] " + + record.getMessage() + + (ex == null ? "\n" : ex); + } + + /** {@inheritDoc} */ + @Override public String toString() { + return S.toString(IgniteJavaLoggerFormatter.class, this); + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/core/src/main/java/org/gridgain/client/impl/connection/GridClientConnectionManagerAdapter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/gridgain/client/impl/connection/GridClientConnectionManagerAdapter.java b/modules/core/src/main/java/org/gridgain/client/impl/connection/GridClientConnectionManagerAdapter.java index 8592f93..c181141 100644 --- a/modules/core/src/main/java/org/gridgain/client/impl/connection/GridClientConnectionManagerAdapter.java +++ b/modules/core/src/main/java/org/gridgain/client/impl/connection/GridClientConnectionManagerAdapter.java @@ -169,7 +169,7 @@ abstract class GridClientConnectionManagerAdapter implements GridClientConnectio if (cfg.getProtocol() == GridClientProtocol.TCP) { try { - IgniteLogger gridLog = new GridJavaLogger(false); + IgniteLogger gridLog = new IgniteJavaLogger(false); GridNioFilter[] filters; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/core/src/main/java/org/gridgain/client/router/impl/GridTcpRouterImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/gridgain/client/router/impl/GridTcpRouterImpl.java b/modules/core/src/main/java/org/gridgain/client/router/impl/GridTcpRouterImpl.java index 6c4d6c5..2179417 100644 --- a/modules/core/src/main/java/org/gridgain/client/router/impl/GridTcpRouterImpl.java +++ b/modules/core/src/main/java/org/gridgain/client/router/impl/GridTcpRouterImpl.java @@ -73,7 +73,7 @@ public class GridTcpRouterImpl implements GridTcpRouter, GridTcpRouterMBean, Lif this.cfg = cfg; log = cfg.getLogger() != null ? - cfg.getLogger().getLogger(getClass()) : new GridJavaLogger().getLogger(getClass()); + cfg.getLogger().getLogger(getClass()) : new IgniteJavaLogger().getLogger(getClass()); } /** http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/core/src/main/java/org/gridgain/grid/GridBasicWarmupClosure.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/gridgain/grid/GridBasicWarmupClosure.java b/modules/core/src/main/java/org/gridgain/grid/GridBasicWarmupClosure.java index e89ce75..43720d0 100644 --- a/modules/core/src/main/java/org/gridgain/grid/GridBasicWarmupClosure.java +++ b/modules/core/src/main/java/org/gridgain/grid/GridBasicWarmupClosure.java @@ -201,7 +201,7 @@ public class GridBasicWarmupClosure implements IgniteInClosure<IgniteConfigurati cfg0.setDiscoverySpi(discoSpi); - cfg0.setGridLogger(new GridNullLogger()); + cfg0.setGridLogger(new IgniteNullLogger()); cfg0.setGridName("gridgain-warmup-grid-" + i); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java b/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java index f9ac8e1..d9db364 100644 --- a/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java +++ b/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java @@ -2002,12 +2002,12 @@ public class GridGainEx { cfgLog = (IgniteLogger)log4jCls.newInstance(); } else - cfgLog = new GridJavaLogger(); + cfgLog = new IgniteJavaLogger(); } // Set node IDs for all file appenders. - if (cfgLog instanceof GridLoggerNodeIdAware) - ((GridLoggerNodeIdAware)cfgLog).setNodeId(nodeId); + if (cfgLog instanceof IgniteLoggerNodeIdAware) + ((IgniteLoggerNodeIdAware)cfgLog).setNodeId(nodeId); return cfgLog; } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/core/src/test/java/org/gridgain/grid/kernal/GridLifecycleAwareSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridLifecycleAwareSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridLifecycleAwareSelfTest.java index 4257740..2452120 100644 --- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridLifecycleAwareSelfTest.java +++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridLifecycleAwareSelfTest.java @@ -117,7 +117,7 @@ public class GridLifecycleAwareSelfTest extends GridAbstractLifecycleAwareSelfTe /** */ - private static class TestLogger extends GridJavaLogger implements LifecycleAware { + private static class TestLogger extends IgniteJavaLogger implements LifecycleAware { /** */ private final TestLifecycleAware lifecycleAware = new TestLifecycleAware(null); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/core/src/test/java/org/gridgain/grid/logger/java/GridJavaLoggerTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/gridgain/grid/logger/java/GridJavaLoggerTest.java b/modules/core/src/test/java/org/gridgain/grid/logger/java/GridJavaLoggerTest.java index 174b0e7..5dd0355 100644 --- a/modules/core/src/test/java/org/gridgain/grid/logger/java/GridJavaLoggerTest.java +++ b/modules/core/src/test/java/org/gridgain/grid/logger/java/GridJavaLoggerTest.java @@ -31,9 +31,9 @@ public class GridJavaLoggerTest extends TestCase { public void testLogInitialize() throws Exception { U.setWorkDirectory(null, U.getGridGainHome()); - log = new GridJavaLogger(); + log = new IgniteJavaLogger(); - ((GridLoggerNodeIdAware)log).setNodeId(UUID.fromString("00000000-1111-2222-3333-444444444444")); + ((IgniteLoggerNodeIdAware)log).setNodeId(UUID.fromString("00000000-1111-2222-3333-444444444444")); if (log.isDebugEnabled()) log.debug("This is 'debug' message."); @@ -46,7 +46,7 @@ public class GridJavaLoggerTest extends TestCase { log.error("This is 'error' message."); log.error("This is 'error' message.", new Exception("It's a test error exception")); - assert log.getLogger(GridJavaLoggerTest.class.getName()) instanceof GridJavaLogger; + assert log.getLogger(GridJavaLoggerTest.class.getName()) instanceof IgniteJavaLogger; assert log.fileName() != null; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/core/src/test/java/org/gridgain/grid/marshaller/GridMarshallerResourceBean.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/gridgain/grid/marshaller/GridMarshallerResourceBean.java b/modules/core/src/test/java/org/gridgain/grid/marshaller/GridMarshallerResourceBean.java index bc4b95a..9e7af1d 100644 --- a/modules/core/src/test/java/org/gridgain/grid/marshaller/GridMarshallerResourceBean.java +++ b/modules/core/src/test/java/org/gridgain/grid/marshaller/GridMarshallerResourceBean.java @@ -58,7 +58,7 @@ class GridMarshallerResourceBean implements Serializable { * Initialization. */ GridMarshallerResourceBean() { - log = new GridJavaLogger(); + log = new IgniteJavaLogger(); marshaller = new GridJdkMarshaller(); mbeanSrv = ManagementFactory.getPlatformMBeanServer(); ses = new GridTestTaskSession(); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithSpecifiedWorkDirectorySelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithSpecifiedWorkDirectorySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithSpecifiedWorkDirectorySelfTest.java index 71b8827..2224e80 100644 --- a/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithSpecifiedWorkDirectorySelfTest.java +++ b/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithSpecifiedWorkDirectorySelfTest.java @@ -88,7 +88,7 @@ public class GridStartupWithSpecifiedWorkDirectorySelfTest extends TestCase { * @throws Exception If failed. */ public void testStartStopWithUndefinedHomeAndWorkDirs() throws Exception { - IgniteLogger log = new GridJavaLogger(); + IgniteLogger log = new IgniteJavaLogger(); log.info(">>> Test started: " + getName()); log.info("Grid start-stop test count: " + GRID_COUNT); @@ -123,7 +123,7 @@ public class GridStartupWithSpecifiedWorkDirectorySelfTest extends TestCase { * @throws Exception If failed. */ public void testStartStopWithUndefinedHomeAndConfiguredWorkDirs() throws Exception { - IgniteLogger log = new GridJavaLogger(); + IgniteLogger log = new IgniteJavaLogger(); log.info(">>> Test started: " + getName()); log.info("Grid start-stop test count: " + GRID_COUNT); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithUndefinedGridGainHomeSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithUndefinedGridGainHomeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithUndefinedGridGainHomeSelfTest.java index 523057f..7163494 100644 --- a/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithUndefinedGridGainHomeSelfTest.java +++ b/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithUndefinedGridGainHomeSelfTest.java @@ -64,7 +64,7 @@ public class GridStartupWithUndefinedGridGainHomeSelfTest extends TestCase { assert ggHome0 == null; - IgniteLogger log = new GridJavaLogger(); + IgniteLogger log = new IgniteJavaLogger(); log.info(">>> Test started: " + getName()); log.info("Grid start-stop test count: " + GRID_COUNT); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/GridGgfsSharedMemoryTestClient.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/GridGgfsSharedMemoryTestClient.java b/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/GridGgfsSharedMemoryTestClient.java index 6df6491..e66e616 100644 --- a/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/GridGgfsSharedMemoryTestClient.java +++ b/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/GridGgfsSharedMemoryTestClient.java @@ -42,7 +42,7 @@ public class GridGgfsSharedMemoryTestClient { try { GridIpcSharedMemoryClientEndpoint client = (GridIpcSharedMemoryClientEndpoint)GridIpcEndpointFactory.connectEndpoint( - "shmem:" + GridIpcSharedMemoryServerEndpoint.DFLT_IPC_PORT, new GridJavaLogger()); + "shmem:" + GridIpcSharedMemoryServerEndpoint.DFLT_IPC_PORT, new IgniteJavaLogger()); os = client.outputStream(); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/GridIpcSharedMemoryFakeClient.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/GridIpcSharedMemoryFakeClient.java b/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/GridIpcSharedMemoryFakeClient.java index b4f852b..567b367 100644 --- a/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/GridIpcSharedMemoryFakeClient.java +++ b/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/GridIpcSharedMemoryFakeClient.java @@ -21,8 +21,8 @@ public class GridIpcSharedMemoryFakeClient { * @throws Exception If failed. */ public static void main(String[] args) throws Exception{ - GridIpcEndpointFactory.connectEndpoint("shmem:10500", new GridJavaLogger()); - GridIpcEndpointFactory.connectEndpoint("shmem:10500", new GridJavaLogger()); - GridIpcEndpointFactory.connectEndpoint("shmem:10500", new GridJavaLogger()); + GridIpcEndpointFactory.connectEndpoint("shmem:10500", new IgniteJavaLogger()); + GridIpcEndpointFactory.connectEndpoint("shmem:10500", new IgniteJavaLogger()); + GridIpcEndpointFactory.connectEndpoint("shmem:10500", new IgniteJavaLogger()); } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/benchmark/GridIpcSharedMemoryBenchmarkWriter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/benchmark/GridIpcSharedMemoryBenchmarkWriter.java b/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/benchmark/GridIpcSharedMemoryBenchmarkWriter.java index 8f98b23..a2c9fea 100644 --- a/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/benchmark/GridIpcSharedMemoryBenchmarkWriter.java +++ b/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/benchmark/GridIpcSharedMemoryBenchmarkWriter.java @@ -76,7 +76,7 @@ public class GridIpcSharedMemoryBenchmarkWriter implements GridIpcSharedMemoryBe try { client = GridIpcEndpointFactory.connectEndpoint("shmem:" + - GridIpcSharedMemoryServerEndpoint.DFLT_IPC_PORT, new GridJavaLogger()); + GridIpcSharedMemoryServerEndpoint.DFLT_IPC_PORT, new IgniteJavaLogger()); OutputStream space = client.outputStream(); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/core/src/test/java/org/gridgain/testframework/junits/logger/GridLog4jRollingFileAppender.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/gridgain/testframework/junits/logger/GridLog4jRollingFileAppender.java b/modules/core/src/test/java/org/gridgain/testframework/junits/logger/GridLog4jRollingFileAppender.java index 211b951..041b460 100644 --- a/modules/core/src/test/java/org/gridgain/testframework/junits/logger/GridLog4jRollingFileAppender.java +++ b/modules/core/src/test/java/org/gridgain/testframework/junits/logger/GridLog4jRollingFileAppender.java @@ -20,7 +20,7 @@ import java.util.*; /** * Log4J {@link org.apache.log4j.RollingFileAppender} with added support for grid node IDs. */ -public class GridLog4jRollingFileAppender extends RollingFileAppender implements GridLoggerNodeIdAware { +public class GridLog4jRollingFileAppender extends RollingFileAppender implements IgniteLoggerNodeIdAware { /** Node ID. */ private UUID nodeId; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/core/src/test/java/org/gridgain/testframework/junits/logger/GridTestLog4jLogger.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/gridgain/testframework/junits/logger/GridTestLog4jLogger.java b/modules/core/src/test/java/org/gridgain/testframework/junits/logger/GridTestLog4jLogger.java index 224fd79..f0c05dc 100644 --- a/modules/core/src/test/java/org/gridgain/testframework/junits/logger/GridTestLog4jLogger.java +++ b/modules/core/src/test/java/org/gridgain/testframework/junits/logger/GridTestLog4jLogger.java @@ -58,7 +58,7 @@ import static org.gridgain.grid.GridSystemProperties.*; * logger in your task/job code. See {@link org.apache.ignite.resources.IgniteLoggerResource} annotation about logger * injection. */ -public class GridTestLog4jLogger extends GridMetadataAwareAdapter implements IgniteLogger, GridLoggerNodeIdAware { +public class GridTestLog4jLogger extends GridMetadataAwareAdapter implements IgniteLogger, IgniteLoggerNodeIdAware { /** */ private static final long serialVersionUID = 0L; @@ -395,8 +395,8 @@ public class GridTestLog4jLogger extends GridMetadataAwareAdapter implements Ign this.nodeId = nodeId; for (FileAppender a : fileAppenders) { - if (a instanceof GridLoggerNodeIdAware) { - ((GridLoggerNodeIdAware)a).setNodeId(nodeId); + if (a instanceof IgniteLoggerNodeIdAware) { + ((IgniteLoggerNodeIdAware)a).setNodeId(nodeId); a.activateOptions(); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ba7a05db/modules/log4j/src/main/java/org/gridgain/grid/logger/log4j/GridLog4jLogger.java ---------------------------------------------------------------------- diff --git a/modules/log4j/src/main/java/org/gridgain/grid/logger/log4j/GridLog4jLogger.java b/modules/log4j/src/main/java/org/gridgain/grid/logger/log4j/GridLog4jLogger.java index 4fda087..c0bbdaa 100644 --- a/modules/log4j/src/main/java/org/gridgain/grid/logger/log4j/GridLog4jLogger.java +++ b/modules/log4j/src/main/java/org/gridgain/grid/logger/log4j/GridLog4jLogger.java @@ -58,7 +58,7 @@ import static org.gridgain.grid.GridSystemProperties.*; * logger in your task/job code. See {@link org.apache.ignite.resources.IgniteLoggerResource} annotation about logger * injection. */ -public class GridLog4jLogger extends GridMetadataAwareAdapter implements IgniteLogger, GridLoggerNodeIdAware, +public class GridLog4jLogger extends GridMetadataAwareAdapter implements IgniteLogger, IgniteLoggerNodeIdAware, GridLog4jFileAware { /** */ private static final long serialVersionUID = 0L;