最近看在infoq上面看到slf4j的介绍,就到slf4j的网站上看了看,发现还是不错的。
大部分开发人员最喜欢用的还是log4j,这个其中可能是因为jdk在1.5才用logs的pack。还有部分人使用commons-logger。
log4j不用说,比起jdk和common-logger还是有优势的。commons-logger我认为都不是鸡肋,完全没有使用的必要,要不你就使用log4j要不就直接使用jdk。
下面对slf4j和log4j做一下总结:
(1)大部分人在程序里面会去写logger.error(exception),其实这个时候log4j回去把这个exception tostring。真正的写法应该是logger(message.exception);而slf4j就不会使得程序员犯这个错误。
(2)log4j间接的在鼓励程序员使用string相加的写法,而slf4j就不会有这个问题
你可以使用logger.error("{} is+serviceid",serviceid);
(3)使用slf4j可以方便的使用其提供的各种集体的实现的jar。(类似commons-logger)
(4)从commons--logger和log4j merge非常方便,slf4j也提供了一个swing的tools来帮助大家完成这个merge。
大部分开发人员最喜欢用的还是log4j,这个其中可能是因为jdk在1.5才用logs的pack。还有部分人使用commons-logger。
log4j不用说,比起jdk和common-logger还是有优势的。commons-logger我认为都不是鸡肋,完全没有使用的必要,要不你就使用log4j要不就直接使用jdk。
下面对slf4j和log4j做一下总结:
(1)大部分人在程序里面会去写logger.error(exception),其实这个时候log4j回去把这个exception tostring。真正的写法应该是logger(message.exception);而slf4j就不会使得程序员犯这个错误。
(2)log4j间接的在鼓励程序员使用string相加的写法,而slf4j就不会有这个问题
你可以使用logger.error("{} is+serviceid",serviceid);
(3)使用slf4j可以方便的使用其提供的各种集体的实现的jar。(类似commons-logger)
(4)从commons--logger和log4j merge非常方便,slf4j也提供了一个swing的tools来帮助大家完成这个merge。