• Spring Boot配置多个日志文件记录不同类日志示例


    了解如何使用多个文件追加器Spring 引导应用程序中创建多个日志文件。了解如何使用翻转策略、归档等配置所有文件追加器,wiihlog4j2日志配置。

    1. 带登录的多个日志文件

    以下文件包含 5 个记录器。我们可以根据需要创建更多的记录器。logback.xml

    • console– 将输出记录到控制台。包括所有日志语句。
    • applicationLog– 将输出记录到。包括包的应用程序日志。application.logdebugcom.howtodoinjava.demo
    • aopLog– 将输出记录到。在包中包含应用程序日志。application-aop.loginfocom.howtodoinjava.demo.aop
    • springLog– Createand 包含 spring 框架生成的所有错误日志。spring-framework.log
    • hibernateLog– 创建并包含休眠生成的所有错误日志。database.log

    放置给定资源文件夹。logback.xml

    <configuration>
     
      <property name="LOG_PATTERN" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} %p %m%n" />
      <property name="APP_LOG_ROOT" value="c:/temp"/>
       
      <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
          <encoder>
              <pattern>${LOG_PATTERN}pattern>
          encoder>
        appender>
     
      <appender name="applicationLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${APP_LOG_ROOT}/application.logfile>
        <encoder>
          <pattern>${LOG_PATTERN}pattern>
        encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
              <fileNamePattern>${APP_LOG_ROOT}/application-%i.logfileNamePattern>
              <minIndex>1minIndex>
              <maxIndex>10maxIndex>
          rollingPolicy>
          <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
              <maxFileSize>10MBmaxFileSize>
          triggeringPolicy>
      appender>
       
      <appender name="aopLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${APP_LOG_ROOT}/application-aop.logfile>
        <encoder>
          <pattern>${LOG_PATTERN}pattern>
        encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
              <fileNamePattern>${APP_LOG_ROOT}/application-aop-%i.logfileNamePattern>
              <minIndex>1minIndex>
              <maxIndex>10maxIndex>
          rollingPolicy>
          <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
              <maxFileSize>10MBmaxFileSize>
          triggeringPolicy>
      appender
       
      <appender name="springLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${APP_LOG_ROOT}/spring-framework.logfile>
        <encoder>
          <pattern>${LOG_PATTERN}pattern>
        encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
              <fileNamePattern>${APP_LOG_ROOT}/spring-framework-%i.logfileNamePattern>
              <minIndex>1minIndex>
              <maxIndex>10maxIndex>
          rollingPolicy>
          <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
              <maxFileSize>10MBmaxFileSize>
          triggeringPolicy>
      appender
       
      <appender name="hibernateLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${APP_LOG_ROOT}/database.logfile>
        <encoder>
          <pattern>${LOG_PATTERN}pattern>
        encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
              <fileNamePattern>${APP_LOG_ROOT}/database-%i.logfileNamePattern>
              <minIndex>1minIndex>
              <maxIndex>10maxIndex>
          rollingPolicy>
          <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
              <maxFileSize>10MBmaxFileSize>
          triggeringPolicy>
      appender
       
      <logger name="com.howtodoinjava.demo" level="DEBUG">
        <appender-ref ref="applicationLog" />
        <appender-ref ref="console" />
      logger>
       
      <logger name="com.howtodoinjava.demo.aop" level="INFO">
        <appender-ref ref="aopLog" />
        <appender-ref ref="console" />
      logger>
       
      <logger name="org.springframework" level="DEBUG">
        <appender-ref ref="springLog" />
        <appender-ref ref="console" />
      logger>
       
      <logger name="org.hibernate" level="DEBUG">
        <appender-ref ref="hibernateLog" />
        <appender-ref ref="console" />
      logger>
     
       <root level="info">
          <appender-ref ref="console" />
       root>
        
    configuration>

    2. 带有 log4j2 的多个日志文件

    要使用 log4j2 实现上述日志记录配置,请在类路径中包含 log4j2 依赖项。

    <dependency>
      <groupId>org.springframework.bootgroupId>
      <artifactId>spring-boot-starter-webartifactId>
      <exclusions>
        <exclusion>
          <groupId>org.springframework.bootgroupId>
          <artifactId>spring-boot-starter-loggingartifactId>
        exclusion>
      exclusions>
    dependency>
     
    <dependency>
      <groupId>org.springframework.bootgroupId>
      <artifactId>spring-boot-starter-log4j2artifactId>
    dependency>

    现在在资源文件夹中添加log4j2.xml

    xml version="1.0" encoding="UTF-8"?>
    <Configuration status="WARN" monitorInterval="30">
      
        <Properties>
            <Property name="LOG_PATTERN">%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} %p %m%nProperty>
            <Property name="APP_LOG_ROOT">c:/tempProperty>
        Properties>
      
        <Appenders>
      
            <Console name="console" target="SYSTEM_OUT" follow="true">
                <PatternLayout pattern="${LOG_PATTERN}"/>
            Console>
              
            <RollingFile name="applicationLog" fileName="${sys:APP_LOG_ROOT}/application.log"
                filePattern="${sys:APP_LOG_ROOT}/application-%d{yyyy-MM-dd}-%i.log">
                <PatternLayout pattern="${LOG_PATTERN}"/>
                <Policies>
                    <SizeBasedTriggeringPolicy size="19500KB" />
                Policies>
                <DefaultRolloverStrategy max="10"/>
            RollingFile>
              
            <RollingFile name="springLog" fileName="${sys:APP_LOG_ROOT}/spring-framework.log"
                filePattern="${sys:APP_LOG_ROOT}/spring-%d{yyyy-MM-dd}-%i.log">
                <PatternLayout pattern="${LOG_PATTERN}"/>
                <Policies>
                    <SizeBasedTriggeringPolicy size="19500KB" />
                Policies>
                <DefaultRolloverStrategy max="10"/>
            RollingFile>
              
            <RollingFile name="aopLog" fileName="${sys:APP_LOG_ROOT}/application-aop.log"
                filePattern="${sys:APP_LOG_ROOT}/application-aop-%d{yyyy-MM-dd}-%i.log">
                <PatternLayout pattern="${LOG_PATTERN}"/>
                <Policies>
                    <SizeBasedTriggeringPolicy size="19500KB" />
                Policies>
                <DefaultRolloverStrategy max="10"/>
            RollingFile>
             
            <RollingFile name="hibernateLog" fileName="${sys:APP_LOG_ROOT}/database.log"
                filePattern="${sys:APP_LOG_ROOT}/spring-%d{yyyy-MM-dd}-%i.log">
                <PatternLayout pattern="${LOG_PATTERN}"/>
                <Policies>
                    <SizeBasedTriggeringPolicy size="19500KB" />
                Policies>
                <DefaultRolloverStrategy max="10"/>
            RollingFile>
              
        Appenders>
      
        <Loggers>
          
          <Logger name="com.howtodoinjava.demo" additivity="false" level="debug">
                <AppenderRef ref="applicationLog" />
                <AppenderRef ref="console"  />
            Logger>
             
            <Logger name="com.howtodoinjava.demo.aop" additivity="false" level="info">
                <AppenderRef ref="aopLog" />
                <AppenderRef ref="console" />
            Logger>
              
            <Logger name="org.springframework" additivity="false" level="error">
                <AppenderRef ref="springLog" />
                <AppenderRef ref="console"/>
            Logger>
             
            <Logger name="org.hibernate" additivity="false" level="error">
                <AppenderRef ref="hibernateLog" />
                <AppenderRef ref="console"/>
            Logger>
                      
            <Root level="INFO">
                <AppenderRef ref="console"/>
            Root>
      
        Loggers>
      
    Configuration>

    3. 弹簧启动多个日志文件演示

    使用上述任何给定配置运行应用程序。您将看到文件夹中生成的日志文件。'c:/temp'

    Spring 引导多个日志文件示例

    请向我提出与使用多个文件追加器配置 Spring 引导日志记录相关的问题。

    快乐学习!!

  • 相关阅读:
    电路与数字逻辑期末复习重点整理!!
    SpringBoot异常处理机制之自定义404、500错误提示页面
    阿里云服务 安装 Node.js
    LeetCode 6254. 划分技能点相等的团队
    Angular, React,Vus三大主流前端开发框架Setup
    CentOS Install Passenger for ROR
    gulp打包vue3+jsx+less插件
    vue3引入pinna配置使用
    PAT乙级真题练习:1001-1004
    【Vue3】中ref如何获取dom元素,以element-plus中的走马灯next、prev方法为例
  • 原文地址:https://blog.csdn.net/allway2/article/details/127978451