/**
* Copyright (C) 2008-2010, Squale Project - http://www.squale.org
*
* This file is part of Squale.
*
* Squale is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or any later version.
*
* Squale 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 General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Squale. If not, see <http://www.gnu.org/licenses/>.
*/
package org.squale.jraf.provider.logging.cexi;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.log4j.Logger;
import org.apache.log4j.Priority;
import org.squale.jraf.spi.logging.ILogger;
import org.squale.jraf.spi.logging.ISeverity;
/**
* <p>Project: JRAF
* <p>Module: jrafProviderLogging
* <p>Title : LoggingProviderImpl.java</p>
* <p>Description : Logger JRAF.
* Permet de logger au formalisme CEXI a partir de la methode logCexi.
* Cette implementation utilise Log4J.
* L'ecriture des traces est configuree dans le fichier log4j.properties.
* </p>
* <p>Copyright : Copyright (c) 2004</p>
*
*/
public class LoggerImpl implements ILogger {
/** logger log4j */
private Log logger;
/**
* Constructeur avec nom de la classe sous forme de chaine de caractere
* @param name nom de la classe
*/
public LoggerImpl(String name) {
logger = LogFactory.getLog(name);
}
/**
* Constructeur
* @param clazz classe
*/
public LoggerImpl(Class clazz) {
logger = LogFactory.getLog(clazz);
}
//============================================
/**
* Constructeur avec un logger
* @param logger logger log4j
*/
public LoggerImpl(Log logger) {
this.logger = logger;
}
public void trace(Object message) {
logger.trace(message);
// logger.log(FQCN, Priority.DEBUG, message, null);
}
public void trace(Object message, Throwable t) {
logger.trace(message, t);
// logger.log(FQCN, Priority.DEBUG, message, t);
}
public void debug(Object message) {
logger.debug(message);
// logger.log(FQCN, Priority.DEBUG, message, null);
}
public void debug(Object message, Throwable t) {
logger.debug(message, t);
// logger.log(FQCN, Priority.DEBUG, message, t);
}
public void info(Object message) {
logger.info(message);
// logger.log(FQCN, Priority.INFO, message, null);
}
public void info(Object message, Throwable t) {
logger.info(message, t);
// logger.log(FQCN, Priority.INFO, message, t);
}
public void warn(Object message) {
logger.warn(message);
// logger.log(FQCN, Priority.WARN, message, null);
}
public void warn(Object message, Throwable t) {
logger.warn(message, t);
// logger.log(FQCN, Priority.WARN, message, t);
}
public void error(Object message) {
logger.error(message);
// logger.log(FQCN, Priority.ERROR, message, null);
}
public void error(Object message, Throwable t) {
logger.error(message, t);
// logger.log(FQCN, Priority.ERROR, message, t);
}
public void fatal(Object message) {
logger.fatal(message);
// logger.log(FQCN, Priority.FATAL, message, null);
}
public void fatal(Object message, Throwable t) {
logger.fatal(message, t);
// logger.log(FQCN, Priority.FATAL, message, t);
}
public Log getLogger() {
return logger;
}
public boolean isDebugEnabled() {
return logger.isDebugEnabled();
}
public boolean isErrorEnabled() {
return logger.isErrorEnabled();
// return logger.isEnabledFor(Priority.ERROR);
}
public boolean isFatalEnabled() {
return logger.isFatalEnabled();
// return logger.isEnabledFor(Priority.FATAL);
}
public boolean isInfoEnabled() {
return logger.isInfoEnabled();
// return logger.isInfoEnabled();
}
public boolean isTraceEnabled() {
return logger.isTraceEnabled();
// return logger.isDebugEnabled();
}
public boolean isWarnEnabled() {
return logger.isWarnEnabled();
// return logger.isEnabledFor(Priority.WARN);
}
/**
* Ecrit une trace au format cexi
* @param code code de l'erreur
* @param severity niveau de criticite du message
* @param group groupe auquel appartient le message
* @param sourceComposant composant qui ecrit la trace
* @param message message
*/
public void logCexi(
int code,
String severity,
String group,
String sourceComposant,
String text) {
Message message =
new Message(code, severity, group, sourceComposant, text);
if ((severity == null)
|| severity.equals(ISeverity.NORMAL)
|| severity.equals(ISeverity.UNKNOWN)) {
info(message);
} else if (severity.equals(ISeverity.WARNING)) {
warn(message);
} else if (severity.equals(ISeverity.MINOR)) {
error(message);
} else if (severity.equals(ISeverity.MAJOR)) {
error(message);
} else if (severity.equals(ISeverity.CRITICAL)) {
fatal(message);
} else if (severity.equals(ISeverity.DEBUG)) {
debug(message);
} else {
info(message);
}
}
}