SSM框架引入logback日志框架

1、本章主要结合实例描述如何在SpringMVC框架中引入logback日志框架,关于常见的几种日志框架的介绍和性能对比大家可以自行去了解。

2、整合logback:

2.1、jar包引入,logback-ext-spring为spring支持jar

<dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.1.2</version>
        </dependency>

        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.1.2</version>
        </dependency>

        <dependency>
            <groupId>org.logback-extensions</groupId>
            <artifactId>logback-ext-spring</artifactId>
            <version>0.1.1</version>
        </dependency>

2.2、web.xml中配置监听器,param-name的配置参考WebLogBackConfigurer类

<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>
2.3、配置日志相关属性logback.xml,关于详细的配置可以参考一篇博客,里面讲的很详细:llogback.xml

项目在D盘,这里配置的日志输出路径是:D:\local\logs\..,目录在项目启动时会自动创建

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 尽量别用绝对路径,如果带参数不同容器路径解释可能不同,以下配置参数在pom.xml里 -->
    <property name="log.root.level" value="DEBUG" /> <!-- 日志级别 -->
    <property name="log.other.level" value="ERROR" /> <!-- 其他日志级别 -->
    <property name="log.base" value="/local/logs" /> <!-- 日志路径,这里是相对路径,web项目eclipse下会输出到eclipse的安装目录下,如果部署到linux上的tomcat下,会输出到tomcat/bin目录 下 -->
    <property name="log.moduleName" value="dubbo-provider" />  <!-- 模块名称, 影响日志配置名,日志文件名 -->
    <property name="log.max.size" value="20MB" /> <!-- 日志文件大小 -->

    <!--控制台输出 -->
    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method:%L -%msg%n</Pattern>
        </encoder>
    </appender>

    <!-- 日志文件输出 -->
    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${log.base}/${log.moduleName}.log</File><!-- 设置日志不超过${log.max.size}时的保存路径,注意如果 是web项目会保存到Tomcat的bin目录 下 -->
        <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${log.base}/archive/${log.moduleName}_all_%d{yyyy-MM-dd}.%i.log.zip
            </FileNamePattern>
            <!-- 当天的日志大小 超过${log.max.size}时,压缩日志并保存 -->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>${log.max.size}</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <!-- 日志输出的文件的格式  -->
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method:%L -%msg%n</pattern>
        </layout>
    </appender>

    <!-- 为某个包下的所有类的指定Appender 这里也可以指定类名称例如:com.aa.bb.ClassName -->
    <logger name="com.dubbo.provider" additivity="false">
        <level value="debug" />
        <appender-ref ref="stdout" />
        <appender-ref ref="file" />
    </logger>
    <!-- root将级别为“DEBUG”及大于“DEBUG”的日志信息交给已经配置好的名为“Console”的appender处理,“Console”appender将信息打印到Console -->
    <root level="debug">
        <appender-ref ref="stdout" /> <!-- 标识这个appender将会添加到这个logger -->
        <appender-ref ref="file" />
    </root>
</configuration>

3、启动项目,如果有输出日志则说明配置成功,可以根据项目需求修改logback.xml参数
阅读更多
换一批

没有更多推荐了,返回首页