/******************************************************************************* * Copyright (c) 2011 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat Incorporated - initial API and implementation ******************************************************************************/ package org.jboss.tools.openshift.express.internal.ui.utils; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Status; import org.jboss.tools.openshift.express.internal.ui.ExpressUIActivator; /** * A logger wrapper utility for classes in the current bundle only. * * @author Xavier Coulon */ public final class Logger { /** The debug name, matching the .options file. */ private static final String DEBUG = ExpressUIActivator.PLUGIN_ID + "/debug"; private static final ThreadLocal<DateFormat> dateFormatter = new ThreadLocal<DateFormat>() { @Override protected DateFormat initialValue() { return new SimpleDateFormat("HH:mm:ss.SSS"); } }; /** * The private constructor of the static class. */ private Logger() { } /** * Logs a message with an 'error' severity. * * @param message * the message to log * @param t * the throwable cause */ public static void error(final String message, final Throwable t) { ExpressUIActivator.getDefault().getLog() .log(new Status(Status.ERROR, ExpressUIActivator.PLUGIN_ID, message, t)); } /** * Logs a message with an 'error' severity. * * @param message * the message to log */ public static void error(final String message) { ExpressUIActivator.getDefault().getLog() .log(new Status(Status.ERROR, ExpressUIActivator.PLUGIN_ID, message)); } /** * Logs a message with an 'warning' severity. * * @param message * the message to log * @param t * the throwable cause */ public static void warn(final String message, final Throwable t) { ExpressUIActivator.getDefault().getLog() .log(new Status(Status.WARNING, ExpressUIActivator.PLUGIN_ID, message, t)); } /** * Logs a message with a 'warning' severity. * * @param message * the message to log */ public static void warn(final String message) { ExpressUIActivator.getDefault().getLog() .log(new Status(Status.WARNING, ExpressUIActivator.PLUGIN_ID, message)); } /** * Logs a message with an 'info' severity. * * @param message * the message to log */ public static void info(String message) { ExpressUIActivator.getDefault().getLog() .log(new Status(Status.INFO, ExpressUIActivator.PLUGIN_ID, message)); } /** * Outputs a debug message in the trace file (not the error view of the * runtime workbench). Traces must be activated for this plugin in order to * see the output messages. * * @param message * the message to trace. */ public static void debug(final String message) { String debugOption = Platform.getDebugOption(DEBUG); if( ExpressUIActivator.getDefault() == null ) return; if (ExpressUIActivator.getDefault().isDebugging() && "true".equalsIgnoreCase(debugOption)) { System.out.println("[" + Thread.currentThread().getName() + "] " + message); } } /** * Outputs a debug message in the trace file (not the error view of the * runtime workbench). Traces must be activated for this plugin in order to * see the output messages. * * @param message * the message to trace. */ public static void debug(final String message, Object... items) { String debugOption = Platform.getDebugOption(DEBUG); String valuedMessage = message; if (ExpressUIActivator.getDefault() != null && ExpressUIActivator.getDefault().isDebugging() && "true".equalsIgnoreCase(debugOption)) { for (Object item : items) { valuedMessage = valuedMessage.replaceFirst("\\{\\}", (item != null ? item.toString() : "null")); } System.out.println(dateFormatter.get().format(new Date()) + " [" + Thread.currentThread().getName() + "] " + valuedMessage); } } }