/* * © Copyright IBM Corp. 2012-2013 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied. See the License for the specific language governing * permissions and limitations under the License. */ package com.ibm.commons.util; import java.io.PrintStream; import com.ibm.commons.Platform; import com.ibm.commons.log.CommonsLogger; /** * Diagnotics helpers. * <p> * Easy to use log utilities. * </p> * @ibm-api */ public class TDiag { /** * Method that trace to the console. * This should be avoided unless the messages must actually go to the console * @param msg the message to display * @param params the parameters used to format the message * @ibm-api */ public static final void console( String msg, Object...params ) { String text = StringUtil.format(msg,params); getOutputStream().println(text); } /** * Method that trace an exception to the console. * This should be avoided unless the messages must actually go to the console * @param ex the exception to trace * @ibm-api */ public static final void console( Exception ex) { ex.printStackTrace(getOutputStream()); } /** * Method that trace an exception to the console. * This should be avoided unless the messages must actually go to the console * @param ex the exception to trace * @param msg the message to display * @param params the parameters used to format the message * @ibm-api */ public static final void console( Exception ex, String msg, Object...params ) { String text = StringUtil.format(msg,params); getOutputStream().println(text); ex.printStackTrace(getOutputStream()); } /** * Common synchronization object when tracing to the output stream * @ibm-api */ public static PrintStream getSyncObject() { return System.out; } /** * Check if the common logger is enabled. * @ibm-api */ public static final void isEnabled() { CommonsLogger.STANDARD.isTraceDebugEnabled(); } /** * Trace to the common logger. * @ibm-api */ public static final void trace( String msg, Object...parameters ) { if(CommonsLogger.STANDARD.isTraceDebugEnabled()) { CommonsLogger.STANDARD.traceDebug(msg,parameters); } } public static final void tracep(Object clazz, String methodName, Throwable t, String msg, Object...parameters ) { if (CommonsLogger.STANDARD.isTraceDebugEnabled()) { CommonsLogger.STANDARD.traceDebugp(clazz, methodName, t, msg, parameters); } } public static final void incIndent() { //CommonsLogger.STANDARD.incIndent(); } public static final void decIndent() { //CommonsLogger.STANDARD.decIndent(); } /** * Trace an exception to the common logger. * @ibm-api */ public static final void exception( Throwable t ) { if(CommonsLogger.STANDARD.isErrorEnabled()) { // note, in domino a stack trace is never displayed // so some message should be provided String msg = null; try{ msg = t.toString(); }catch(Throwable loggingProblem){ // ignore logging problem } if( null == msg || msg.length() == 0){ try{ msg = t.getClass().getName()+"@????"; //$NON-NLS-1$ }catch(Throwable problem2){ // ignore logging problem } if( null == msg ){ msg = ""; } } CommonsLogger.STANDARD.error(t,msg); } } public static final void exception( Throwable t, String msg, Object...parameters ) { if(CommonsLogger.STANDARD.isErrorEnabled()) { CommonsLogger.STANDARD.error(t,msg,parameters); } } public static PrintStream getOutputStream() { return Platform.getInstance().getOutputStream(); } }