diff --git a/jps/standalone-builder/src/com/intellij/openapi/diagnostic/CompositeLogger.java b/jps/standalone-builder/src/com/intellij/openapi/diagnostic/CompositeLogger.java index 0dbc48384869..4c26bf761449 100644 --- a/jps/standalone-builder/src/com/intellij/openapi/diagnostic/CompositeLogger.java +++ b/jps/standalone-builder/src/com/intellij/openapi/diagnostic/CompositeLogger.java @@ -61,6 +61,23 @@ public class CompositeLogger extends Logger { } } + @Override + public boolean isTraceEnabled() { + for (Logger logger : myLoggers) { + if (logger.isTraceEnabled()) { + return true; + } + } + return false; + } + + @Override + public void trace(String message) { + for (Logger logger : myLoggers) { + logger.trace(message); + } + } + @Override public void info(@NonNls String message) { for (Logger logger : myLoggers) { diff --git a/platform/platform-impl/src/com/intellij/idea/RareLogger.java b/platform/platform-impl/src/com/intellij/idea/RareLogger.java index 8547060289f5..59670a9957a8 100644 --- a/platform/platform-impl/src/com/intellij/idea/RareLogger.java +++ b/platform/platform-impl/src/com/intellij/idea/RareLogger.java @@ -132,6 +132,16 @@ public class RareLogger extends Logger { process(Level.DEBUG, message, t); } + @Override + public boolean isTraceEnabled() { + return myLogger.isTraceEnabled(); + } + + @Override + public void trace(String message) { + process(Level.TRACE, message, null); + } + @Override public void error(@NonNls String message, @Nullable Throwable t, @NotNull @NonNls String... details) { process(Level.ERROR, message, t, details); diff --git a/platform/util/src/com/intellij/openapi/diagnostic/Log4jBasedLogger.java b/platform/util/src/com/intellij/openapi/diagnostic/Log4jBasedLogger.java index 0b9e5b985414..f33202d869b5 100644 --- a/platform/util/src/com/intellij/openapi/diagnostic/Log4jBasedLogger.java +++ b/platform/util/src/com/intellij/openapi/diagnostic/Log4jBasedLogger.java @@ -51,6 +51,16 @@ public class Log4jBasedLogger extends Logger { myLogger.debug(message, t); } + @Override + public boolean isTraceEnabled() { + return myLogger.isTraceEnabled(); + } + + @Override + public void trace(String message) { + myLogger.trace(message); + } + @Override public void info(@NonNls String message) { myLogger.info(message); diff --git a/platform/util/src/com/intellij/openapi/diagnostic/Logger.java b/platform/util/src/com/intellij/openapi/diagnostic/Logger.java index 4bb0396efe75..dae2659cd16c 100644 --- a/platform/util/src/com/intellij/openapi/diagnostic/Logger.java +++ b/platform/util/src/com/intellij/openapi/diagnostic/Logger.java @@ -93,6 +93,18 @@ public abstract class Logger { } } + public boolean isTraceEnabled() { + return isDebugEnabled(); + } + + /** + * Log a message with 'trace' level which finer-grained than 'debug' level. Use this method instead of {@link #debug(String)} for internal + * events of a subsystem to avoid overwhelming the log if 'debug' level is enabled. + */ + public void trace(String message) { + debug(message); + } + public void info(@NotNull Throwable t) { info(t.getMessage(), t); }