command.line/java/com/jetbrains/teamcity/Debug.java (33 lines of code) (raw):

package com.jetbrains.teamcity; import org.apache.log4j.Logger; import org.jetbrains.annotations.Nullable; public class Debug { private boolean debugMode = false; private static Debug ourInstance; public static Debug getInstance() { if (ourInstance == null) { ourInstance = new Debug(); } return ourInstance; } private Debug() { } public void setDebug(boolean on) { debugMode = on; } public void debug(final Class<?> clazz, final String message) { internalLog(clazz, message, null, false); } public void error(final Class<?> clazz, final String message, final Throwable t) { internalLog(clazz, message, t, true); } private void internalLog(final Class<?> clazz, final String message, @Nullable Throwable t, final boolean forceStderr) { Logger.getLogger(clazz).debug(message, t); if (debugMode || forceStderr) { System.err.println(String.format("%s: %s", clazz.getSimpleName(), message)); if (t != null) { t.printStackTrace(System.err); } } } }