Methods log in LoggingFilter.java use the subsequent eventLevel instead of
current
----------------------------------------------------------------------------------
Key: DIRMINA-656
URL: https://issues.apache.org/jira/browse/DIRMINA-656
Project: MINA
Issue Type: Bug
Components: Filter
Affects Versions: 2.0.0-M4
Environment: Windows-XP SP3
jdk1.6.0_11
Reporter: Aris Marsopoulos
Priority: Minor
The log methods in class LoggingFilter use the subsequent eventLevel instead of
current
For example:
If the current eventLevel i= LogLevel.INFO the log method uses logger.warn to
print the message (see source code for proof).
private void log(LogLevel eventLevel, String message) {
if (eventLevel == LogLevel.TRACE) {
logger.trace(message);
} else if (eventLevel.getLevel() > LogLevel.INFO.getLevel()) {
logger.info(message);
} else if (eventLevel.getLevel() > LogLevel.WARN.getLevel()) {
logger.warn(message);
} else if (eventLevel.getLevel() > LogLevel.ERROR.getLevel()) {
logger.error(message);
}
}
Remedy:
Either replace the > operator by a >= operator in all three log methods or use
a switch statement (see code below)
/**
* Log if the logger and the current event log level are compatible. We log
* a message and an exception.
*
* @param eventLevel the event log level as requested by the user
* @param message the message to log
* @param cause the exception cause to log
*/
private void log(LogLevel eventLevel, String message, Throwable cause) {
switch(eventLevel)
{
case TRACE:
logger.trace(message, cause);
break;
case DEBUG:
case INFO:
logger.info(message, cause);
break;
case WARN:
logger.warn(message, cause);
break;
case ERROR:
logger.error(message, cause);
break;
}
}
/**
* Log if the logger and the current event log level are compatible. We log
* a formated message and its parameters.
*
* @param eventLevel the event log level as requested by the user
* @param message the formated message to log
* @param param the parameter injected into the message
*/
private void log(LogLevel eventLevel, String message, Object param) {
switch(eventLevel)
{
case TRACE:
logger.trace(message, param);
break;
case DEBUG:
case INFO:
logger.info(message, param);
break;
case WARN:
logger.warn(message, param);
break;
case ERROR:
logger.error(message, param);
break;
}
}
/**
* Log if the logger and the current event log level are compatible. We log
* a simple message.
*
* @param eventLevel the event log level as requested by the user
* @param message the message to log
*/
private void log(LogLevel eventLevel, String message) {
switch(eventLevel)
{
case TRACE:
logger.trace(message);
break;
case DEBUG:
case INFO:
logger.info(message);
break;
case WARN:
logger.warn(message);
break;
case ERROR:
logger.error(message);
break;
}
}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.