/******************************************************************************* * Copyright (c) quickfixengine.org All rights reserved. * * This file is part of the QuickFIX FIX Engine * * This file may be distributed under the terms of the quickfixengine.org * license as defined by quickfixengine.org and appearing in the file * LICENSE included in the packaging of this file. * * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING * THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A * PARTICULAR PURPOSE. * * See http://www.quickfixengine.org/LICENSE for licensing information. * * Contact ask@quickfixengine.org if any conditions of this licensing * are not clear to you. ******************************************************************************/ package quickfix; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.github.lburgazzoli.quickfixj.core.IFIXContext; import java.io.PrintWriter; import java.io.StringWriter; /** * Utilities for logging session-related events. * */ public class LogUtil { private final static Logger log = LoggerFactory.getLogger(LogUtil.class); /** * Logs a throwable as a session event, including the stack trace. * * @param log a Session log * @param message error message * @param t the exception to log */ public static void logThrowable(Log log, String message, Throwable t) { final StringWriter stringWriter = new StringWriter(); final PrintWriter printWriter = new PrintWriter(stringWriter); printWriter.println(message); t.printStackTrace(printWriter); log.onErrorEvent(stringWriter.toString()); } /** * Logs a throwable as a session event, including the stack trace. * * @param message the error message * @param t the exception to log */ public static void logThrowable(Session session, String message, Throwable t) { if (session != null) { logThrowable(session.getLog(), message, t); } else { // QFJ-335 // It's possible the session has been deregistered by the time // we log the message, so this is the fallback logging. log.error(message, t); } } /** * Logs a throwable as a session event, including the stack trace. * * @param sessionID the session ID * @param message the error message * @param t the exception to log */ public static void logThrowable(IFIXContext context,SessionID sessionID, String message, Throwable t) { logThrowable(context.getSession(sessionID),message,t); } }