日志记录:LogBack结合SSM或SpringBoot

1 Logback的引入

所谓日志框架是一套能实现日志输出的工具包,而所有能够描述系统运行状态的事件都可以算作日志。

目前常用的日志框架包括Log4j,Log4j 2,Commons Logging,Slf4j,Logback,Jul等等,但是由于种种原因,比较常用的组合使用方式是Slf4j与Logback组合使用,Commons Logging与Log4j组合使用。

Commons Logging和Slf4j是日志门面。log4j和Logback则是具体的日志实现方案。可以简单的理解为接口与接口的实现,调用这只需要关注接口而无需关注具体的实现,做到解耦。

注解:门面模式是软件工程中常用的一种软件设计模式,也被称为正面模式、外观模式。它为子系统中的一组接口提供一个统一的高层接口,使得子系统更容易使用。

 

为什么我和spring选择了SLF4J和Logback?

就因为对Commons Logging的接口不满意,有人就搞了Slf4j。因为对Log4j的性能不满意,有人就搞了Logback。而这里的有个人指的就是就是Log4j的作者Ceki。他嫌Log4j是在太懒了,于是离开Apache公司后就开发了Slf4j和Logback。确实SLF4J和Logback的组合也更受大众喜爱。

2 导入jar包

直接导入logback

<!-- logbac的所有jar包-->
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.3</version>
</dependency>

或者如果是springboot项目的话,只要有日志记录的起步依赖就行了,如下:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-logging</artifactId>
</dependency>

3 Logback配置文件

在classpath或者src或者resource文件夹下(即源根文件夹下)创建如logback-spring.xml的配置文件。我们针对info和error信息安全程度的不同,将两种信息分别输出到不同的日志文件中,且每天会重新增加一个文件记录对应日志,达到滚动效果。其余配置见博客——看完这个不会配置logback,请你吃瓜!

具体代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <!-- 控制台日志输出格式配置-->
    <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </layout>
    </appender>

    <!-- INFO级别的日志输出到文件的日志-->
    <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 设置不输出ERROR级别的日志 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>DENY</onMatch>
            <onMismatch>ACCEPT</onMismatch>
        </filter>

        <encoder>
            <!-- pattern节点,用来设置日志的输出格式 -->
            <pattern>%d{HH:mm:ss.SSS} [%level] [%thread] %logger{60} [%file : %line] %msg%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 输出路径-->
            <fileNamePattern>log/info.%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>

    <!-- ERROR级别的日志输出到文件的日志-->
    <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 设置只输出ERROR级别的日志 -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>

        <encoder>
            <!-- pattern节点,用来设置日志的输出格式 -->
            <pattern>%d{HH:mm:ss.SSS} [%level] [%thread] %logger{60} [%file : %line] %msg%n</pattern>
        </encoder>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 输出路径-->
            <fileNamePattern>log/error.%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>

    <!-- 将这些配置应用在根目录下,也就是对全局应用 -->
    <root level="info">
        <appender-ref ref="consoleLog"/>
        <appender-ref ref="fileInfoLog"/>
        <appender-ref ref="fileErrorLog"/>

    </root>
</configuration>



4 加载配置文件

4.1 springboot中

在application.properties文件中加入以下代码即可

#===========加载日志配置文件==============
logging.config=classpath:logback-sprin

g.xml

4.2 Spring中

在web.xml文件中配置相应的监听器即可

<context-param>
    <param-name>logbackConfigLocation</param-name>
    <param-value>classpath:logback.xml</param-value>
</context-param>
<listener>
    <listener-class>ch.qos.logback.ext.spring.web.LogbackConfigListener</listener-class>
</listener>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值