diff --git a/common/source/java/ch/systemsx/cisd/common/concurrent/ConcurrencyUtilities.java b/common/source/java/ch/systemsx/cisd/common/concurrent/ConcurrencyUtilities.java index 54a395900607b08d244696a8f45168a8e2b2fc5c..82188978dee65caa7ba21e8904be81f90192bd55 100644 --- a/common/source/java/ch/systemsx/cisd/common/concurrent/ConcurrencyUtilities.java +++ b/common/source/java/ch/systemsx/cisd/common/concurrent/ConcurrencyUtilities.java @@ -27,7 +27,7 @@ import java.util.concurrent.TimeoutException; import ch.systemsx.cisd.common.exceptions.CheckedExceptionTunnel; import ch.systemsx.cisd.common.logging.ISimpleLogger; -import ch.systemsx.cisd.common.logging.ISimpleLogger.Level; +import ch.systemsx.cisd.common.logging.LogLevel; /** * Concurrency related utility methods. @@ -91,7 +91,7 @@ public final class ConcurrencyUtilities if (loggerOrNull != null) { loggerOrNull - .log(Level.DEBUG, String.format("%s took longer than %f s, cancelled.", + .log(LogLevel.DEBUG, String.format("%s took longer than %f s, cancelled.", operationNameOrNull == null ? "UNKNOWN OPERATION" : operationNameOrNull, timeoutMillis / 1000f)); } @@ -101,7 +101,7 @@ public final class ConcurrencyUtilities future.cancel(true); if (loggerOrNull != null) { - loggerOrNull.log(Level.DEBUG, String.format("%s got interrupted.", + loggerOrNull.log(LogLevel.DEBUG, String.format("%s got interrupted.", operationNameOrNull == null ? "UNKNOWN OPERATION" : operationNameOrNull)); } return null; @@ -110,7 +110,7 @@ public final class ConcurrencyUtilities final Throwable cause = ex.getCause(); if (loggerOrNull != null) { - loggerOrNull.log(Level.ERROR, String.format("%s has caused an exception: %s", + loggerOrNull.log(LogLevel.ERROR, String.format("%s has caused an exception: %s", operationNameOrNull == null ? "UNKNOWN OPERATION" : operationNameOrNull, cause.getClass() .getSimpleName(), cause.getMessage() != null ? cause.getMessage() : "<no message>")); } diff --git a/common/source/java/ch/systemsx/cisd/common/logging/ConsoleLogger.java b/common/source/java/ch/systemsx/cisd/common/logging/ConsoleLogger.java index 422e78c7b51fc2f293f20ddf5c03da8bacd633e2..15705b96b7837883a1ff28cc0b9475921be5eee3 100644 --- a/common/source/java/ch/systemsx/cisd/common/logging/ConsoleLogger.java +++ b/common/source/java/ch/systemsx/cisd/common/logging/ConsoleLogger.java @@ -24,7 +24,7 @@ package ch.systemsx.cisd.common.logging; public class ConsoleLogger implements ISimpleLogger { - public void log(Level level, String message) + public void log(LogLevel level, String message) { System.out.println(level.toString() + ": " + message); } diff --git a/common/source/java/ch/systemsx/cisd/common/logging/ISimpleLogger.java b/common/source/java/ch/systemsx/cisd/common/logging/ISimpleLogger.java index dc673bd1b801df82716e2dba1851f83ab43e1b7d..800e1977810e1ae691a5910d391cb31129644efa 100644 --- a/common/source/java/ch/systemsx/cisd/common/logging/ISimpleLogger.java +++ b/common/source/java/ch/systemsx/cisd/common/logging/ISimpleLogger.java @@ -24,10 +24,7 @@ package ch.systemsx.cisd.common.logging; public interface ISimpleLogger { - /** A simple form of log levels. */ - public enum Level { ERROR, WARN, INFO, DEBUG } - /** Log <var>message</var> at log <var>level</var> out to some log file or display. */ - public void log(Level level, String message); + public void log(LogLevel level, String message); } diff --git a/common/source/java/ch/systemsx/cisd/common/logging/Log4jSimpleLogger.java b/common/source/java/ch/systemsx/cisd/common/logging/Log4jSimpleLogger.java index 591d2d69e4fb4680d1c43bf0bb5cd038b9853aab..557cc23cb7b80de84de2155a7c5f1978ae3801e3 100644 --- a/common/source/java/ch/systemsx/cisd/common/logging/Log4jSimpleLogger.java +++ b/common/source/java/ch/systemsx/cisd/common/logging/Log4jSimpleLogger.java @@ -16,6 +16,7 @@ package ch.systemsx.cisd.common.logging; +import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.apache.log4j.Priority; @@ -30,20 +31,24 @@ public class Log4jSimpleLogger implements ISimpleLogger private final Logger log4jLogger; - private static final Priority toLog4jPriority(Level level) + static final Level toLog4jPriority(LogLevel level) { switch (level) { - case ERROR: - return org.apache.log4j.Level.ERROR; - case WARN: - return org.apache.log4j.Level.WARN; - case INFO: - return org.apache.log4j.Level.INFO; + case OFF: + return org.apache.log4j.Level.OFF; + case TRACE: + return org.apache.log4j.Level.TRACE; case DEBUG: return org.apache.log4j.Level.DEBUG; + case INFO: + return org.apache.log4j.Level.INFO; + case WARN: + return org.apache.log4j.Level.WARN; + case ERROR: + return org.apache.log4j.Level.ERROR; default: - throw new IllegalArgumentException("Unknown log level " + level); + throw new IllegalArgumentException("Illegal log level " + level); } } @@ -52,7 +57,7 @@ public class Log4jSimpleLogger implements ISimpleLogger * * @param log4jLogger The log4j logger to use. * @param log4jOverridePriorityOrNull If not <code>null</code>, use this log level instead of the one provided to - * the {@link ISimpleLogger#log(ch.systemsx.cisd.common.logging.ISimpleLogger.Level, String)}. + * the {@link ISimpleLogger#log(ch.systemsx.cisd.common.logging.LogLevel, String)}. */ public Log4jSimpleLogger(Logger log4jLogger, Priority log4jOverridePriorityOrNull) { @@ -70,7 +75,7 @@ public class Log4jSimpleLogger implements ISimpleLogger this(log4jLogger, null); } - public void log(Level level, String message) + public void log(LogLevel level, String message) { if (log4jOverridePriorityOrNull != null) { diff --git a/common/source/java/ch/systemsx/cisd/common/logging/LogAnnotation.java b/common/source/java/ch/systemsx/cisd/common/logging/LogAnnotation.java index 881eec39a0de0babe9a0a3aab7a0d046f4d1c8c8..4e3b46f6c9d5813dc0066fab5801382fda94c027 100644 --- a/common/source/java/ch/systemsx/cisd/common/logging/LogAnnotation.java +++ b/common/source/java/ch/systemsx/cisd/common/logging/LogAnnotation.java @@ -22,7 +22,6 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; - /** * Log annotation for methods invoked by {@link LogInvocationHandler}. * @@ -34,4 +33,5 @@ import java.lang.annotation.Target; public @interface LogAnnotation { public LogCategory logCategory() default LogCategory.ACCESS; + public LogLevel logLevel() default LogLevel.UNDEFINED; } diff --git a/common/source/java/ch/systemsx/cisd/common/logging/LogLevel.java b/common/source/java/ch/systemsx/cisd/common/logging/LogLevel.java new file mode 100644 index 0000000000000000000000000000000000000000..4062e4ddd25aec4cef5458fd40d63e82e292af6f --- /dev/null +++ b/common/source/java/ch/systemsx/cisd/common/logging/LogLevel.java @@ -0,0 +1,11 @@ +package ch.systemsx.cisd.common.logging; + +/** + * A simple form of log levels. + * + * @author Bernd RInn + */ +public enum LogLevel +{ + UNDEFINED, OFF, TRACE, DEBUG, INFO, WARN, ERROR +} \ No newline at end of file diff --git a/common/source/java/ch/systemsx/cisd/common/utilities/DirectoryScanningTimerTask.java b/common/source/java/ch/systemsx/cisd/common/utilities/DirectoryScanningTimerTask.java index 214dc8a2f4695fee4ec9489a8c3acd8d3f7c3e2b..c58fa5b39896c32dc3bb19184a187a4f54fe01d1 100644 --- a/common/source/java/ch/systemsx/cisd/common/utilities/DirectoryScanningTimerTask.java +++ b/common/source/java/ch/systemsx/cisd/common/utilities/DirectoryScanningTimerTask.java @@ -27,6 +27,7 @@ import org.apache.log4j.Logger; import ch.systemsx.cisd.common.logging.ISimpleLogger; import ch.systemsx.cisd.common.logging.LogCategory; import ch.systemsx.cisd.common.logging.LogFactory; +import ch.systemsx.cisd.common.logging.LogLevel; /** * A {@link TimerTask} that scans a source directory for entries that are accepted by some {@link FileFilter} and @@ -304,7 +305,7 @@ public final class DirectoryScanningTimerTask extends TimerTask { return new ISimpleLogger() { - public void log(ISimpleLogger.Level dummyLevel, String message) + public void log(LogLevel dummyLevel, String message) { if (category == LogCategory.NOTIFY) { diff --git a/common/source/java/ch/systemsx/cisd/common/utilities/FileUtilities.java b/common/source/java/ch/systemsx/cisd/common/utilities/FileUtilities.java index 42e1298841edfb91de7c622251379079a8780035..af65a6fe58d0fa4c2cd99dbc064b34b12d8264d9 100644 --- a/common/source/java/ch/systemsx/cisd/common/utilities/FileUtilities.java +++ b/common/source/java/ch/systemsx/cisd/common/utilities/FileUtilities.java @@ -46,6 +46,7 @@ import org.apache.commons.lang.StringUtils; import ch.systemsx.cisd.common.exceptions.CheckedExceptionTunnel; import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException; import ch.systemsx.cisd.common.logging.ISimpleLogger; +import ch.systemsx.cisd.common.logging.LogLevel; /** * Some useful utility methods for files and directories. @@ -398,7 +399,7 @@ public final class FileUtilities { if (loggerOrNull != null) { - loggerOrNull.log(ISimpleLogger.Level.INFO, String.format("Deleting file '%s'", file.getPath())); + loggerOrNull.log(LogLevel.INFO, String.format("Deleting file '%s'", file.getPath())); } file.delete(); } @@ -406,7 +407,7 @@ public final class FileUtilities } if (loggerOrNull != null) { - loggerOrNull.log(ISimpleLogger.Level.INFO, String.format("Deleting directory '%s'", path.getPath())); + loggerOrNull.log(LogLevel.INFO, String.format("Deleting directory '%s'", path.getPath())); } return path.delete(); } @@ -780,18 +781,18 @@ public final class FileUtilities { if (directory.isFile()) { - logger.log(ISimpleLogger.Level.ERROR, String.format( + logger.log(LogLevel.ERROR, String.format( "Failed to get listing of directory '%s' (path is file instead of directory).", directory)); } else { - logger.log(ISimpleLogger.Level.ERROR, String.format( + logger.log(LogLevel.ERROR, String.format( "Failed to get listing of directory '%s' (path not found).", directory)); } } else { StringWriter exStackWriter = new StringWriter(); exOrNull.printStackTrace(new PrintWriter(exStackWriter)); - logger.log(ISimpleLogger.Level.ERROR, String.format( + logger.log(LogLevel.ERROR, String.format( "Failed to get listing of directory '%s'. Exception: %s", directory, exStackWriter.toString())); } }