mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
test framework: ability to intercept error/warn logs
This commit is contained in:
@@ -16,33 +16,19 @@
|
||||
package com.intellij.testFramework;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@NonNls public abstract class LoggedErrorProcessor {
|
||||
private static final LoggedErrorProcessor DEFAULT = new LoggedErrorProcessor() {
|
||||
@Override
|
||||
public void processError(String message, Throwable t, String[] details, Logger logger) {
|
||||
logger.info(message, t);
|
||||
System.err.println("ERROR: " + message);
|
||||
if (t != null) t.printStackTrace();
|
||||
if (details != null && details.length > 0) {
|
||||
System.out.println("details: ");
|
||||
for (String detail : details) {
|
||||
System.out.println(detail);
|
||||
}
|
||||
}
|
||||
|
||||
throw new AssertionError(message);
|
||||
}
|
||||
};
|
||||
public class LoggedErrorProcessor {
|
||||
private static final LoggedErrorProcessor DEFAULT = new LoggedErrorProcessor();
|
||||
|
||||
private static LoggedErrorProcessor ourInstance = DEFAULT;
|
||||
|
||||
@NotNull
|
||||
public static LoggedErrorProcessor getInstance() {
|
||||
return ourInstance;
|
||||
}
|
||||
|
||||
public static void setNewInstance(LoggedErrorProcessor newInstance) {
|
||||
public static void setNewInstance(@NotNull LoggedErrorProcessor newInstance) {
|
||||
ourInstance = newInstance;
|
||||
}
|
||||
|
||||
@@ -50,5 +36,23 @@ import org.jetbrains.annotations.NonNls;
|
||||
ourInstance = DEFAULT;
|
||||
}
|
||||
|
||||
public abstract void processError(String message, Throwable t, String[] details, Logger logger);
|
||||
public void processWarn(String message, Throwable t, @NotNull Logger logger) {
|
||||
logger.warn(message, t);
|
||||
}
|
||||
|
||||
@SuppressWarnings("UseOfSystemOutOrSystemErr")
|
||||
public void processError(String message, Throwable t, String[] details, @NotNull Logger logger) {
|
||||
logger.info(message, t);
|
||||
|
||||
System.err.println("ERROR: " + message);
|
||||
if (t != null) t.printStackTrace(System.err);
|
||||
if (details != null && details.length > 0) {
|
||||
System.out.println("details: ");
|
||||
for (String detail : details) {
|
||||
System.out.println(detail);
|
||||
}
|
||||
}
|
||||
|
||||
throw new AssertionError(message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,6 @@ package com.intellij.testFramework;
|
||||
|
||||
import org.apache.log4j.Level;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -44,15 +43,10 @@ public class TestLogger extends com.intellij.openapi.diagnostic.Logger {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void debug(@NonNls String message, Throwable t) {
|
||||
public void debug(String message, Throwable t) {
|
||||
myLogger.debug(message, t);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error(String message, @Nullable Throwable t, @NotNull String... details) {
|
||||
LoggedErrorProcessor.getInstance().processError(message, t, details, myLogger);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void info(String message) {
|
||||
myLogger.info(message);
|
||||
@@ -64,8 +58,13 @@ public class TestLogger extends com.intellij.openapi.diagnostic.Logger {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void warn(@NonNls String message, Throwable t) {
|
||||
myLogger.warn(message, t);
|
||||
public void warn(String message, @Nullable Throwable t) {
|
||||
LoggedErrorProcessor.getInstance().processWarn(message, t, myLogger);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error(String message, @Nullable Throwable t, @NotNull String... details) {
|
||||
LoggedErrorProcessor.getInstance().processError(message, t, details, myLogger);
|
||||
}
|
||||
|
||||
public Level getLevel() {
|
||||
|
||||
Reference in New Issue
Block a user