首页 > 其他分享 >【Spring】logback-spring.xml 日志配置

【Spring】logback-spring.xml 日志配置

时间:2024-12-06 11:12:20浏览次数:8  
标签:xml %- amerp Spring dd server yyyy MM spring

 

写项目没关注过这个东西,项目工程文件也是同事从别的项目上搬过来的

测试跑环境发现不打印日志了,叫我看看怎么个事情

我们找到 logback-spring.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds">

    <!-- start:控制台 appender****************************************************************************** -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder charset="UTF-8">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80} -
                %msg%n
            </pattern>
        </encoder>
    </appender>
    <!-- end:控制台 appender****************************************************************************** -->

    <!-- start:INFO appender****************************************************************************** -->
    <appender name="info" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>../logs/amerp-server/info/amerp-server-info.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名 -->
            <fileNamePattern>../logs/amerp-server/info/amerp-server-info-%d{yyyy-MM-dd}.log.%i
            </fileNamePattern>
            <!--日志文件保留天数-->
            <MaxHistory>3</MaxHistory>
            <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- or whenever the file size reaches 10MB -->
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <Pattern>%-15d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level
                %logger{80}[%class:%line] - %msg%n
            </Pattern>
            <charset>UTF-8</charset>
            <immediateFlush>true</immediateFlush>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 只打印INFO日志 -->
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <appender name="ASYNC-INFO" class="ch.qos.logback.classic.AsyncAppender">
        <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
        <discardingThreshold>0</discardingThreshold>
        <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
        <queueSize>1024</queueSize>
        <includeCallerData>true</includeCallerData>
        <!-- 添加附加的appender,最多只能添加一个 -->
        <appender-ref ref="info"/>
    </appender>
    <!-- end:INFO appender****************************************************************************** -->

    <!-- start:ERROR appender****************************************************************************** -->
    <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>../logs/amerp-server/error/amerp-server-error.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名 -->
            <fileNamePattern>../logs/amerp-server/error/amerp-server-error-%d{yyyy-MM-dd}.log.%i
            </fileNamePattern>
            <!--日志文件保留天数-->
            <MaxHistory>3</MaxHistory>
            <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- or whenever the file size reaches 10MB -->
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <Pattern>%-15d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level
                %logger{80}[%class:%line] - %msg%n
            </Pattern>
            <charset>UTF-8</charset>
            <immediateFlush>true</immediateFlush>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 只打印ERROR日志 -->
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <appender name="ASYNC-ERROR" class="ch.qos.logback.classic.AsyncAppender">
        <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
        <discardingThreshold>0</discardingThreshold>
        <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
        <queueSize>1024</queueSize>
        <includeCallerData>true</includeCallerData>
        <!-- 添加附加的appender,最多只能添加一个 -->
        <appender-ref ref="error"/>
    </appender>
    <!-- end:ERROR appender****************************************************************************** -->

    <!-- start:WARN appender****************************************************************************** -->
    <appender name="warn" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>../logs/amerp-server/warn/amerp-server-warn.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名 -->
            <fileNamePattern>../logs/amerp-server/warn/amerp-server-warn-%d{yyyy-MM-dd}.log.%i
            </fileNamePattern>
            <!--日志文件保留天数-->
            <MaxHistory>3</MaxHistory>
            <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- or whenever the file size reaches 10MB -->
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <Pattern>%-15d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level
                %logger{80}[%class:%line] - %msg%n
            </Pattern>
            <charset>UTF-8</charset>
            <immediateFlush>true</immediateFlush>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 只打印WARN日志 -->
            <level>WARN</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <appender name="ASYNC-WARN" class="ch.qos.logback.classic.AsyncAppender">
        <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
        <discardingThreshold>0</discardingThreshold>
        <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
        <queueSize>1024</queueSize>
        <includeCallerData>true</includeCallerData>
        <!-- 添加附加的appender,最多只能添加一个 -->
        <appender-ref ref="warn"/>
    </appender>
    <!-- end:ERROR appender****************************************************************************** -->

    <!-- start:project default level -->
    <logger name="org.springframework" level="INFO"/>
    <logger name="org.apache" level="INFO"/>
    <logger name="org.apache.cxf" level="INFO"/>
    <logger name="springfox" level="INFO"/>
    <logger name="org.activiti" level="INFO"/>
    <!-- end:project default level****************************************************************************** -->

    <!-- star:dev环境配置文件****************************************************************************** -->
    <springProfile name="dev">
        <logger name="cn.hyite.amerp" level="DEBUG"/>
        <!--<logger name="org.apache.mina" level="ERROR"/>-->
        <root level="DEBUG">
            <appender-ref ref="CONSOLE"/>
        </root>
    </springProfile>
    <!-- end:dev环境配置文件****************************************************************************** -->


    <!-- star:test环境配置文件****************************************************************************** -->
    <springProfile name="test">
        <!-- 下面配置一些第三方包的日志过滤级别,用于避免刷屏 -->
        <logger name="cn.hyite.amerp" level="INFO"/>
        <logger name="org.springframework" level="ERROR"/>
        <logger name="org.apache.cxf" level="ERROR"/>
        <logger name="org.apache.mina.filter" level="ERROR"/>
        <!-- root -->
        <root level="info">
            <appender-ref ref="ASYNC-INFO"/>
            <appender-ref ref="ASYNC-ERROR"/>
            <appender-ref ref="ASYNC-WARN"/>
        </root>
    </springProfile>
    <!-- end:test环境配置文件****************************************************************************** -->

    <!-- star:prod环境配置文件****************************************************************************** -->
    <springProfile name="prod">
        <!-- 下面配置一些第三方包的日志过滤级别,用于避免刷屏 -->
        <logger name="cn.hyite.amerp" level="INFO"/>
        <logger name="org.springframework" level="ERROR"/>
        <logger name="org.apache.cxf" level="ERROR"/>
        <logger name="org.apache.mina.filter" level="ERROR"/>
        <!-- root -->
        <root level="INFO">
            <appender-ref ref="ASYNC-INFO"/>
            <appender-ref ref="ASYNC-ERROR"/>
            <appender-ref ref="ASYNC-WARN"/>
        </root>
    </springProfile>
    <!-- end:prod环境配置文件****************************************************************************** -->

</configuration>

 

先看 springProfile一栏,这里对应每一个profile

一共配置了三种 dev - test - prod

开发 - 测试 - 生产

    <!-- star:dev环境配置文件****************************************************************************** -->
    <springProfile name="dev">
        <logger name="cn.hyite.amerp" level="DEBUG"/>
        <!--<logger name="org.apache.mina" level="ERROR"/>-->
        <root level="DEBUG">
            <appender-ref ref="CONSOLE"/>
        </root>
    </springProfile>
    <!-- end:dev环境配置文件****************************************************************************** -->


    <!-- star:test环境配置文件****************************************************************************** -->
    <springProfile name="test">
        <!-- 下面配置一些第三方包的日志过滤级别,用于避免刷屏 -->
        <logger name="cn.hyite.amerp" level="INFO"/>
        <logger name="org.springframework" level="ERROR"/>
        <logger name="org.apache.cxf" level="ERROR"/>
        <logger name="org.apache.mina.filter" level="ERROR"/>
        <!-- root -->
        <root level="info">
            <appender-ref ref="ASYNC-INFO"/>
            <appender-ref ref="ASYNC-ERROR"/>
            <appender-ref ref="ASYNC-WARN"/>
        </root>
    </springProfile>
    <!-- end:test环境配置文件****************************************************************************** -->

    <!-- star:prod环境配置文件****************************************************************************** -->
    <springProfile name="prod">
        <!-- 下面配置一些第三方包的日志过滤级别,用于避免刷屏 -->
        <logger name="cn.hyite.amerp" level="INFO"/>
        <logger name="org.springframework" level="ERROR"/>
        <logger name="org.apache.cxf" level="ERROR"/>
        <logger name="org.apache.mina.filter" level="ERROR"/>
        <!-- root -->
        <root level="INFO">
            <appender-ref ref="ASYNC-INFO"/>
            <appender-ref ref="ASYNC-ERROR"/>
            <appender-ref ref="ASYNC-WARN"/>
        </root>
    </springProfile>
    <!-- end:prod环境配置文件****************************************************************************** -->

 

但是没找到决定到底使用哪一个profile,我猜想是在application.yml设置的

  profiles:
    active: dev

 

改成 test 就能正常输出了,晕倒

  

 

 

 

 

 

 

  

 

标签:xml,%-,amerp,Spring,dd,server,yyyy,MM,spring
From: https://www.cnblogs.com/mindzone/p/18590239

相关文章

  • Springboot定时任务详解
    文章目录Springboot定时任务详解一、引言二、cron表达式三、使用`@Scheduled`注解1、开启定时任务2、添加定时任务四、使用`TaskScheduler`接口1、注入`TaskScheduler`实例五、集成Quartz框架1、集成Quartz六、实际使用示例七、总结Springboot定时任务详解一、引......
  • SpringMVC拦截器
    在前面使用纯注解快速搭建springMVC的基础上配置拦截器,纯注解快速搭建springMVC请查看SpringMVC纯注解快速开发-CSDN博客接下来快速配置一个拦截器,在controller包下新建interceptor包,然后在interceptor包下新建类Handler.java,该类去实现HandlerInterceptor接口,实现其中的三个......
  • fetch和axios请求的原理都是基于XMLHttpRerequst吗?
    不完全是。虽然XMLHttpRequest是Ajax的基础,也是早期库(例如jQuery的$.ajax)的核心,但FetchAPI和Axios的工作原理略有不同:XMLHttpRequest:这是一个老牌的浏览器API,用于在浏览器和服务器之间进行HTTP通信。它提供了一种通过JavaScript发送HTTP请求和接收响应......
  • 【开题报告】基于Springboot+vue校园新闻发布系统(程序+源码+论文) 计算机毕业设计
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库开题报告内容开题报告内容研究背景在当今信息化高速发展的时代,校园作为知识传播与创新的重要场所,其信息传播的效率与质量直接关系到师生的学习与生活。传统的校园新闻发布方式,如公告栏、校报等,已......
  • 基于智能聊天+SpringBoot+Vue的民宿预定管理系统(毕业设计:选题+开题+程序设计+文档+PPT
    文章目录前言详细视频演示系统介绍后台管理技术框架后端采用SpringBoot框架前端框架Vue选题推荐(部分)成品项目展示(部分)系统测试系统测试的目的系统功能测试代码参考为什么选择我?获取源码前言......
  • 基于数据可视化+SpringBoot的志愿者管理系统设计与实现(毕业设计:选题+开题+程序设计+文
    文章目录前言详细视频演示系统介绍后台管理技术框架后端采用SpringBoot框架前端框架Vue选题推荐(部分)成品项目展示(部分)系统测试系统测试的目的系统功能测试代码参考为什么选择我?获取源码前言......
  • c#和 .net 类似于 java 和spring吗?
    是的,C#和.NET确实与Java和Spring有一些类似之处,它们在各自的生态系统中提供类似的功能和架构支持。以下是它们的对应关系和差异点:C#和Java的比较语言层面C#是一种由微软开发的现代化编程语言,语法风格与Java非常相似(两者都受C/C++的影响)。Java是一种跨......
  • 【关注可白嫖源码】springboot校园招聘平台与岗位推荐系统的设计与实现
     摘 要对企业人才求职招聘的管理进行改革创新是提高各个企业并使之良性正面发展的必经之途。随着科技水准对社会经济的愈发依赖以及世界发展的轨迹预测,更少的人力需求,以及简单快捷的管理方式是迈进信息管理现代化的重要指标值。一个完善的企业必然具备相应的且高效的求职招......
  • springboot植物健康系统(代码+数据库+LW)
    摘要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了植物健康系统的开发全过程。通过分析植物健康系统管理的不足,创建了一个计算机管理植物健康系统的方案。文章介绍了植物健康系统的系统分析部分,包括可行性分析等,系统设计部分......
  • springboot学生评奖评优管理系统的设计与实现(代码+数据库+LW)
    摘要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了学生评奖评优管理系统的开发全过程。通过分析学生评奖评优管理系统管理的不足,创建了一个计算机管理学生评奖评优管理系统的方案。文章介绍了学生评奖评优管理系统的系统分析......