java web 开发使用Log4J和SLF4J

今天记录下有关日志记录的内容。
java从JDK1.4版本加入了日志记录相关的API和实现,JUL(java.util.logging)比较简单,开发中一般使用Log4J和SLF4J进行日志记录。

1 Log4J

Log4J使用很简单,一般都是配合Apache的commons-logging包使用。
导入commons-logging.jar和log4j.jar包,在src目录下新建log4j.properties文件。
其中内容为:

# 定义 DEBUG 优先级, R 为日志输出目的的 

log4j.rootLogger= FATAL, R 

# 设置日志输出类型 , 为文件类型 

log4j.appender.R= org.apache.log4j.FileAppender 

# 设置日志文件名 logRecord.log, 输出到 tomcat 服务器的 logs 目录下 

log4j.appender.R.File= ${catalina.home}/logs/BootstrapPagination.log  

# 每次在文件尾写入新的日志信息 

log4j.appender.R.Append= false 

# 日志输出信息格式类型 

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

# 日志输出信息格式为 换行、日期、优先级、 [ 全类名 ] 、日志信息、换行 
log4j.appender.R.layout.ConversionPattern= %n%d %p [%l] %m%n 

项目结构如图:
Log4J工程目录结构
工程中其他的奇怪的东西不要在意….
在需要打印log的类中,获取log对象,打印日志信息:

private Log log = LogFactory.getLog(QueryStudents.class);
//等级由低到高
        log.debug("debug");
        log.info("info");
        log.warn("WARN");
        log.error("error");
        log.fatal("fatal");

附上项目BootstrapPaginatorLog4J Tomcat 8.0 JDK 8
关于Log4J.properties的详细参数请参阅其他资料。

2 SLF4J

官方指南
SLF4J和其他日志框架使用的关系图:
示例图
如图可以看到,SLF4J与log4j一起使用时,需要log4j.jar slf4j-api.jar slf4j-log4j12.jar 三个jar包即可。配置仍然使用log4j.properties文件。在获取logger对象时有些不同,需要使用slf4j的logger对象。

private Logger logger = LoggerFactory.getLogger(this.getClass());

其他基本一致。
slf4j使用一种占位符的特性,{},可以在运行时被某个提供的实际字符串所替换。

        String t="17";
        String oldT = "10";
        log.debug("Temperature set to {}. Old temperature was {}.", t, oldT);

slf4j的debug info error等实现方法里,预先判断了模式是否开启。
如下:

public void info(String format, Object arg1, Object arg2) {
        if (logger.isInfoEnabled()) {
            FormattingTuple ft = MessageFormatter.format(format, arg1, arg2);
            logger.log(FQCN, Level.INFO, ft.getMessage(), ft.getThrowable());
        }
    }

所以不用在代码中判断是否开启info模式。
至于slf4j的优点,可以看这片文章为什么使用slf4j而不是log4j
附上项目地址BootstrapPaginationSLF4J

红杏邀请链接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值