SSM:SSM整合logback日志

引入依赖

使用maven工程创建的项目,在pom.xml配置文件中添加依赖:

<properties>
	<!--slf4j版本号-->
	<slf4j.version>1.7.30</slf4j.version>
</properties>
<!--日志门面,便于切换日志框架,方便输出日志-->
<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>slf4j-api</artifactId>
	<version>${slf4j.version}</version>
</dependency>
<dependency>
	<groupId>ch.qos.logback</groupId>
	<artifactId>logback-classic</artifactId>
	<version>1.2.3</version>
	<!--<scope>test</scope>-->
</dependency>
<dependency>
	<groupId>ch.qos.logback</groupId>
	<artifactId>logback-core</artifactId>
	<version>1.2.3</version>
</dependency>

创建logback.xml配置文件

在resources目录下创建logback.xml配置文件。在该文件中设置日志输出级别,输出格式,日志文件输出位置等。
spring会自动加载classpath路径下的配置文件,即resourecs目录下的配置文件,加载顺序如下:

  1. 首先尝试加载logback-test.xml配置文件;
  2. 如果未找到此类文件,尝试加载logback.groovy文件;
  3. 如果未找到此类文件,尝试加载logback.xml配置文件;
  4. 如果未找到此类文件,则使用服务提供程序加载工具(在 JDK 1.6 中引入)通过在类路径中查找文件META-INF\services\ch.qos.logback.classic.spi.Configurator 来解析 com.qos.logback.classic.spi.Configurator接口的实现。 其内容应指定所需实现的完全限定类名。
  5. 如果上述操作均未成功,则 Logback 将使用BasicConfigurator自动配置自身,这将导致日志记录输出定向到控制台。

logback.xml配置文件内容示例:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- Console log output -->
    <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <!-- 格式化输出:%d:表示日期 %thread:表示线程名 %-5level:级别从左显示5个字符宽度-->
            <pattern>%d{HH:mm:ss.SSS} [%thread] > %green(%-5level) %cyan(%logger{35}) - %m%n</pattern>
        </encoder>
    </appender>

    <!-- Log file debug output -->
    <appender name="File" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>F:/workspace/logs/rczp-ssm/%d{yyyy-MM-dd}.log.zip</fileNamePattern>
            <!--日志最大保存时间-->
            <maxHistory>365</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} > %-5level %X{X-B3-TraceId:-} ${springAppName:-} %logger{35} %m%n</pattern>
        </encoder>
    </appender>
    <root level="INFO">
        <appender-ref ref="Console"/>
        <appender-ref ref="File"/>
    </root>
</configuration>

使用slf4j打印日志

private static final Logger log = LoggerFactory.getLogger(Test.class);

常用的是log.info()

log.info("logback-Info");
log.warn("logback-Warn");
log.error("logback-Error");

如果logback.xml配置文件在resources目录下,那么SSM整合logback日志成功:
在这里插入图片描述

自定义logback.xml文件位置

引入依赖

使用maven工程创建的项目,在pom.xml配置文件中添加依赖:

<dependency>
	<groupId>org.logback-extensions</groupId>
	<!--logback监听器在该依赖中。该依赖中包含slf4j-api、logback-classic、logback-core三个依赖-->
	<artifactId>logback-ext-spring</artifactId>
	<version>0.1.4</version>
</dependency>

注意:在logback-ext-spring依赖中,已经依赖了slf4j-api、logback-classic、logback-core三个依赖,因此可以不用在pom.xml文件中引入这三个依赖,如果有依赖版本要求,可以在pom.xml中引入并指定版本。请注意有没有版本冲突的问题。

创建logback.xml配置文件

在resources/config目录下创建logback.xml配置文件,文件内容与上文中的一致即可。

配置监听器

在web.xml中设置监听器,加载logback.xml配置文件。logback日志正常运行。

<!-- logback -->
<context-param>
	<param-name>logbackConfigLocation</param-name>
	<!--logback.xml放在resources/config路径下-->
	<param-value>classpath:config/logback.xml</param-value>
</context-param>
<listener>
	<listener-class>ch.qos.logback.ext.spring.web.LogbackConfigListener</listener-class>
</listener>

日志输出正常:
在这里插入图片描述

如果logback.xml配置文件没有放在resources目录下,也没有配置LogbackConfigListener监听器,那么项目启动时会报以下错误,是因为logback.xml配置文件没有被加载。

javax.validation.NoProviderFoundException: Unable to create a Configuration, because no Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath.

如果没有加载到任何配置,则 Logback 将使用BasicConfigurator自动配置自身,将日志记录输出定向到控制台。此时日志输出为debug级别,所有内容颜色一致。并且无法将日志输出到文件中。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值