springboot + logback根据不同模块打印日志

springboot + logback

logback是springboot默认的日志框架,这篇文章用logback实现根据不同模块输出日志到不同的文件中.

首先分析不同模块输出不同的日志文件到磁盘中,那就可以理解为不同的模块放在不同的包路径下,按照不同包路径输出到不同的文件中.

1. 具体思路

  1. 自定义一个输出到文件的appender(理解为日志输出器)
  2. 配置logger,logger的name为需要打印日志的不同包路径

2. 具体实现

  • 需要引入依赖:
		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

或者

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

springboot默认用的就是logback日志所以不需要特定的引入logback的依赖包.

  • 需要在resource文件夹下创建一个logback-spring.xml文件,(自定义的logger是属于局部配置,它的优先级高于全局配置(指root),可以理解为局部配置覆盖全局配置)
    logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!--官方配置 start-->
    <!--保留官方配置,方便使用官方配置的特性,参考:spring-boot-2.1.0.RELEASE.jar!\org\springframework\boot\logging\logback\base.xml-->
    <include resource="org/springframework/boot/logging/logback/defaults.xml" />
    <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>
    <include resource="org/springframework/boot/logging/logback/console-appender.xml" />
    <include resource="org/springframework/boot/logging/logback/file-appender.xml" />
    <root level="info">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>
    <!--官方配置 end-->
    <!--######自定义配置  start########-->
    <!-- 自定义配置__单独输出到一个日志文件中 -->
    <appender name="Biz_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <file>${LOG_FILE}_BIZ.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_FILE}_BIZ.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
            <maxFileSize>${LOG_FILE_MAX_SIZE:-10MB}</maxFileSize>
            <maxHistory>${LOG_FILE_MAX_HISTORY:-0}</maxHistory>
        </rollingPolicy>
    </appender>

    <appender name="tr_log" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <file>${LOG_FILE}_tr.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_FILE}_tr.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
            <maxFileSize>${LOG_FILE_MAX_SIZE:-10MB}</maxFileSize>
            <maxHistory>${LOG_FILE_MAX_HISTORY:-0}</maxHistory>
        </rollingPolicy>
    </appender>
    <!--指定包或者类的日志配置(这里是局部配置,它能覆盖全局配置)-->
    <!-- 自定义配置__配置业务日志输出至单独的日志文件中 -->
    <logger name="com.sq.ws.system.controller.UserController" additivity="false" level="debug">
        <!-- 引用自定义的appender -->
        <appender-ref ref="Biz_LOG"/>
        <!-- 这里也引用控制台appender,才能在控制台中看到我们的日志 -->
        <appender-ref ref="CONSOLE"/>
    </logger>
    <!--######自定义配置  end########-->

    <logger name="com.sq.ws.system.controller.TrUserRoleController" additivity="false" level="debug">
        <appender-ref ref="tr_log"/>
    </logger>
</configuration>
  • 最后在全局配置文件中指定log日志要输出的地址
    application.properties
logging.config=classpath:logback-spring.xml
# 指定日志要输出的位置
logging.file.path=/Users/wangshuai/project/mes/mes-system-service/src/main/resources/

到此根据不同模块输出到不同的日志文件中已经完成,进入测试即可.

总结

学习了springboot默认的logback的输出不同模块的日志配置,下面还会学习一下log4j怎么实现日志的管理配置.

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spring Boot 框架的组成部分和功能模块主要包括以下几个方面: 1. Spring Boot Starter:Spring Boot Starter 是 Spring Boot 开发的核心模块之一,它提供了一系列的依赖包和配置,可以快速地构建 Spring Boot 应用程序。 2. Spring Boot Autoconfigure:Spring Boot Autoconfigure 可以自动地配置 Spring Boot 应用程序,它会根据应用程序的依赖和配置自动地配置应用程序的各个组件,并且让应用程序更加简单易用。 3. Spring Boot Actuator:Spring Boot Actuator 是 Spring Boot 提供的一个监控和管理组件,它可以帮助开发者监控应用程序的运行状态,并且提供了一系列的管理和监控接口,可以用于监控、管理和诊断应用程序。 4. Spring Boot CLI:Spring Boot CLI 是 Spring Boot 提供的一个命令行工具,可以用于快速创建、运行和调试 Spring Boot 应用程序。 5. Spring Boot Devtools:Spring Boot Devtools 是 Spring Boot 提供的一个开发工具,可以帮助开发者在开发过程中快速地修改、编译和测试应用程序。 6. Spring Boot Test:Spring Boot Test 是 Spring Boot 提供的一个测试框架,可以帮助开发者快速地编写和执行单元测试、集成测试和端到端测试等各种测试用例。 7. Spring Boot Web:Spring Boot Web 是 Spring Boot 提供的一个 Web 框架,可以帮助开发者快速地构建 Web 应用程序,并且提供了一系列的 Web 开发工具和组件,可以用于处理 HTTP 请求、响应和文件上传等各种 Web 开发任务。 ### 回答2: Spring Boot是一个用于简化Spring应用程序开发的框架。它由以下几个组成部分和功能模块组成: 1. 自动配置:Spring Boot利用了条件化配置的特性来消除繁琐的配置工作。通过自动配置,开发者可以使用默认的配置来快速启动应用程序,并根据需要进行自定义配置。 2. 起步依赖:Spring Boot提供了一系列预先配置好的依赖项,称为起步依赖。这些起步依赖可以根据需求引入和管理其他必需的依赖项,简化了项目构建和管理的过程。 3. 嵌入式服务器:Spring Boot内置了多个嵌入式Web服务器,如Tomcat、Jetty和Undertow。开发者可以选择其中之一来运行应用程序,而无需为部署和配置一个独立的服务器。 4. Actuator:Actuator是Spring Boot的一个重要模块,提供了监控和管理应用程序的功能。它可以通过HTTP接口或JMX来检查应用程序的运行状况、配置信息和性能指标,并进行管理和调整。 5. 数据访问:Spring Boot集成了多个常用的数据库访问框架,如Spring Data JPA、MyBatis和Hibernate。开发者可以使用这些框架来简化数据访问的过程。 6. 日志记录Spring Boot默认使用Logback作为日志记录框架,同时也支持其他常用的日志记录框架,如Log4j和Slf4j。开发者可以根据需求进行配置和使用。 总之,Spring Boot的组成部分和功能模块提供了一系列开发和管理应用程序所需的工具和功能,简化了开发者的工作,并提高了生产力。 ### 回答3: Spring Boot是一个基于Spring框架的开发工具,它简化了Spring应用程序的配置和部署,并提供了丰富的功能模块Spring Boot的组成部分和功能模块主要包括以下几个方面: 1.自动配置(Auto-configuration):Spring Boot通过扫描classpath,根据应用程序的依赖关系来自动配置Spring应用程序。它自动配置了常用的功能模块,如数据库连接、事务管理、Web开发等,大大减少了配置的工作量。 2.启动器(Starters):Spring Boot提供了一系列的启动器,简化了Maven或Gradle的配置。它们包含了一组相关的依赖项,可以快速地添加所需的功能模块,例如添加spring-boot-starter-web就可以启用Web开发功能。 3.嵌入式Web服务器(Embedded Web Server):Spring Boot集成了多种嵌入式Web服务器,如Tomcat、Jetty和Undertow,开发人员不需要手动配置Web服务器,只需要编写Web应用程序代码即可。 4.健康检查(Health Check):Spring Boot提供了健康检查的功能,可以自动检测应用程序的运行状态,例如数据库的连接情况、缓存的可用性等,可以通过HTTP端点或者JMX进行访问和监控。 5.配置管理(Configuration Management):Spring Boot支持多种配置方式,可以通过属性文件、YAML文件、环境变量等方式进行配置,方便应用程序的部署和管理。 6.日志管理(Logging):Spring Boot集成了常用的日志框架,如Logback和Log4j,可以通过配置文件进行日志输出的管理和配置。 7.测试支持(Testing Support):Spring Boot提供了丰富的测试支持,可以进行单元测试、集成测试和端到端测试等,可以使用JUnit、Mockito等测试框架进行测试。 总的来说,Spring Boot提供了一套全面的功能模块,帮助开发人员快速构建和部署Spring应用程序,简化了开发流程,提高了开发效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值