/*
* Copyright (c) 1990-2012 kopiLeft Development SARL, Bizerte, Tunisia
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1 as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* $Id$
*/
package org.kopi.ebics.interfaces;
import org.kopi.ebics.exception.ReturnCode;
/**
* A mean to log all ebics client operations. The log process
* ensures four functions:
* <ol>
* <li> info: inform the user about an operation</li>
* <li> warn: warn the user about a risk that may affect the transfer or the key activation process</li>
* <li> error: report an error to the user with its details and causes</li>
* <li> report: reports an EBICS return code to the user</li>
* </ol>
*
* @author hachani
*
*/
public interface EbicsLogger {
/**
* Informs a given message to the client application user.
* @param message the message to be informed.
*/
public void info(String message);
/**
* Warns a given message to the client application user.
* @param message the given message.
*/
public void warn(String message);
/**
* Warns a given message and its causes to the client application user.
* @param message the given message.
* @param throwable message causes.
*/
public void warn(String message, Throwable throwable);
/**
* Reports an error to the client application user.
* @param message the error message
*/
public void error(String message);
/**
* Reports an error and its causes to the client application user.
* @param message the error message.
* @param throwable the error causes.
*/
public void error(String message, Throwable throwable);
/**
* Reports an ebics return code to the client application user.
* @param returnCode the return code to report.
*/
public void report(ReturnCode returnCode);
/**
* Sets the logger log file
* @param logFile the log file
*/
public void setLogFile(String logFile);
}