使用slf4j+logback记录项目日志

一、为什么是slf4j

        slf4j本身并不是一个具体的日志实现框架。它所提供的是一些api及一个日志工厂。通俗一点来说的话,开发者可以在代码中使用slf4的api,其具体调用的哪一种日志框架,交给slf4j去控制就行了。作为开发者,只需配置相应的配置文件,而不会在具体的代码中留下任何日志实现类的痕迹。

 

二、为什么是logback

       提到日志框架,最出名的可能是Apache的log4j,后来新出的log4j2虽说名字相似,其实并不是log4j的二代版本。logback与log4j的作者是同一人,据说其写logback这个日志项目就是对log4j不太满意,他要开发一个新的日志项目,也就是logback。

 

三、如何在web项目中使用slf4j+logback记录日志

1.slf4j相关的jar包(当然,现在一般都是使用maven或者gradle去构建)

2.logback相关的jar包

3.在项目中引入jar包后,logback会自动去在src目录中寻找名为logback-test.xml 或 logback.xml的配置文件,若没有找到,则使用用户自定义的配置地址。(一下附上logback.xml的模板)

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
	<!-- 定义日志文件输出位置 -->
	<property name="logDir" value="${catalina.home}" />
	<!-- 日志最多保存几天 -->
	<property name="maxHistory" value="7" />
	
    <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>
                %d - %msg%n
            </pattern>
        </layout>
    </appender>

    <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>DENY</onMatch>
            <onMismatch>ACCEPT</onMismatch>
        </filter>
        <encoder>
            <pattern>
                %msg%n
            </pattern>
        </encoder>
        <!--滚动策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--路径-->
            <fileNamePattern>${logDir}/logs/info.%d.log</fileNamePattern>
            <maxHistory>${maxHistory}</maxHistory>
        </rollingPolicy>
    </appender>

    <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <encoder>
            <pattern>
                %msg%n
            </pattern>
        </encoder>
        <!--滚动策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--路径-->
            <fileNamePattern>${logDir}/logs/error.%d.log</fileNamePattern>
            <maxHistory>${maxHistory}</maxHistory>
        </rollingPolicy>
    </appender>

    <root level="info">
        <appender-ref ref="consoleLog"></appender-ref>
        <appender-ref ref="fileInfoLog"></appender-ref>
        <appender-ref ref="fileErrorLog"></appender-ref>
    </root>

</configuration>

4.以上就是配置的步骤,接下来要使用,可以在需要记录日志的类中导入slf4

接着通过日志工厂获得Logger的对象

这样使用logger对象的方法就可以记录日志。

 

四、lobmbok

        如果觉得在每个类中去获取当前类的Logger对象比较麻烦,那也可以使用Lobmbok这个插件,通过@Slf4j这个注解去获得log对象,这也是现在新流行的做法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值