java spring 配置log_spring配置日志

原文:http://blog.csdn.net/xiejx618/article/details/41698913

参考:http://spring.io/blog/2009/12/04/logging-dependencies-in-spring

spring默认使用了commons-logging,在集成其它日志框架,slf4j使用了编译时绑定来代替运行时发现.它注定是更高效的(当然slf4j还可以使用占位符绑定等功能).下文介绍spring三种常用方案记录日志,推荐第三种

方案一:commons-logging+Log4J

1.依赖:

org.springframework

spring-context

${spring.version}

log4j

log4j

1.2.17

2.在classpath根目录添加log4j.properties或log4j.xml,关于开发的日志级别配置,调得太高,会漏到一些信息看不见,调得太低,输出得太多,看得眼花缭乱,在产品阶段甚至影响应用性能.我觉得开发时,默认(一般依赖也是用默认appender)给WARN,项目本身编写的代码可以给DEBUG,其它另外特别指定,以下是log4j.properties的一个例子:

log4j.rootCategory=WARN, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %t %c{2}:%L - %m%n

log4j.category.org.exam=DEBUG

log4j.category.org.springframework.beans.factory=INFO

根据log4j API(http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Category.html),Category已经过时,应使用Logger代替.而Logger是Category的子类,在Category的所有操作都可以在Logger上执行.以上的properties文件内容应改为

log4j.rootLogger=WARN, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %t %c{2}:%L - %m%n

log4j.logger.org.exam=DEBUG

log4j.logger.org.springframework.beans.factory=INFO

3.代码用法:

importorg.apache.log4j.Logger;public classUserService {final Logger logger = Logger.getLogger(UserService.class);public booleansave(){

logger.error("虽然A喜欢我,但是我喜欢B");return true;

}

}

方案二:slf4j+Log4J

1.先在spring排除commons-logging.再引入4个包:桥接包jcl-over-slf4j,SLF4J API包slf4j-api,绑定到Log4J的包slf4j-log4j12,Log4J实现包log4j12.

org.slf4j

jcl-over-slf4j

1.7.7

org.slf4j

slf4j-log4j12

1.7.7

org.springframework

spring-context

${spring.version}

commons-logging

commons-logging

2.log4j配置同上.

3.代码用法:

importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;public classUserService {final Logger logger = LoggerFactory.getLogger(UserService.class);public booleansave(){

logger.error("虽然{}喜欢我,但是我喜欢{}","A","B");return true;

}

}

方案三:slf4j+logback.其中,logback是slf4j原生的实现.

1.先引入logback-classic依赖,它会将其它依赖引入,再在spring排除commons-logging.

ch.qos.logback

logback-classic

1.1.3

org.springframework

spring-webmvc

${spring.version}

commons-logging

commons-logging

2.logback配置:查找顺序logback.groovy-->logback-test.xml-->logback.xml,详细配置还是参考文档http://logback.qos.ch/documentation.html.下面是logback.xml例子

%d{yy.MM.dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值