您的位置:首页 > 编程语言 > Java开发

Java日志框架——不同日志框架转换,日志记录请求的Level值不能一一映射

2015-08-16 09:51 519 查看
不同的日志框架中,日志记录请求的Level值的可取值范围不尽相同。比如常见的几个日志框架中,日志记录请求的Level值的可取值范围分别如下:

1)Java Logging API

FINEST < FINER < FINE < CONFIG < INFO < WARNING < SEVERE

2)Log4J

TRACE < DEBUG < INFO < WARN < ERROR < FATAL

3)SLF4J

trace < debug < info < warn < error

4)JCL

trace < debug < info < warn < error < fatal

当进行“JCL,Log4J,Java Logging API等到SLF4J(或者相反方向)”的转换时,很有可能发生“由于进行转换的两个日志框架的日志记录请求的Level值的可取值范围不同,而导致转换前后日志记录请求的Level值不能一一映射”的情况。

比如当进行“Java Logging API到SLF4J”的转换时,Java Logging API中的“FINEST”这个Level的日志记录请求就会丢失;当进行“JCL到SLF4J”的转换时,JCL中的“error和fatal”这两个Level的日志记录请求都会转换成SLF4J下的“error”这个Level的日志记录请求。

备注:

另外一个Level是日志记录类的Level。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Main {
public static void main(String[] args) {
Logger logger = LoggerFactory.getLogger(Main.class);
logger.info("hello world");
}
}
以上代码片段"logger.info("hello world");"中的“info”是日志记录请求的Level值。

<logger name="Main" level="debug" additivity="true"/>
以上配置中的“debug”是日志记录类的Level值

同一个日志框架中,日志记录请求的Level值和日志记录类的Level值的可取值范围一般不同。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: