首页 > 其他分享 >springboot项目log

springboot项目log

时间:2024-10-28 10:21:02浏览次数:5  
标签:ROLLINGPOLICY lg log 项目 LOG PATTERN FILE LOGBACK springboot

目录

logback

  • spring默认日志

info和error独立文件

yaml配置

# 日志文件配置
logging:
  file:
    name: ${user.home}/logs/${spring.application.name}.log # 日志文件名,全路径
  level:
    # 配置自己写的 MyBatis Mapper 打印日志
    com.lg.crm.module.infra.dal.mysql: DEBUG
    com.lg.crm.module.infra.dal.mysql.job.JobLogMapper: DEBUG # 配置 JobLogMapper 的日志级别为 info
    com.lg.crm.module.system.dal.mysql: DEBUG
    com.lg.crm.module.lg.dal.mysql: DEBUG

logback-spring.xml

亲测有效
${LOG_FILE}的值就是上面yaml中的logging.file.name的值。

<configuration>
    <!-- 引用 Spring Boot 的 logback 基础配置 -->
    <include resource="org/springframework/boot/logging/logback/defaults.xml" />
    <!-- 变量 crm.info.base-package,基础业务包 -->
    <springProperty scope="context" name="crm.info.base-package" source="crm.info.base-package"/>
    <!-- 格式化输出:%d 表示日期,%X{tid} SkWalking 链路追踪编号,%thread 表示线程名,%-5level:级别从左显示 5 个字符宽度,%msg:日志消息,%n是换行符 -->
    <property name="PATTERN_DEFAULT" value="%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} | %highlight(${LOG_LEVEL_PATTERN:-%5p} ${PID:- }) | %boldYellow(%thread [%tid]) %highlight(%L) %boldGreen(%-40.40logger{39}) | %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>

    <!-- 控制台 Appender -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">     
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
                <pattern>${PATTERN_DEFAULT}</pattern>
            </layout>
        </encoder>
    </appender>

    <!-- 文件 Appender -->
    <!-- 参考 Spring Boot 的 file-appender.xml 编写 -->
    <appender name="ALL_LOGS"  class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
                <pattern>${PATTERN_DEFAULT}</pattern>
            </layout>
        </encoder>

        <!-- 文件 Appender for all logs except ERROR -->
        <!-- 日志文件名 -->
        <file>${LOG_FILE}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 滚动后的日志文件名 -->
            <fileNamePattern>${LOGBACK_ROLLINGPOLICY_FILE_NAME_PATTERN:-${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz}</fileNamePattern>
            <!-- 启动服务时,是否清理历史日志,一般不建议清理 -->
            <cleanHistoryOnStart>${LOGBACK_ROLLINGPOLICY_CLEAN_HISTORY_ON_START:-false}</cleanHistoryOnStart>
            <!-- 日志文件,到达多少容量,进行滚动 -->
            <maxFileSize>${LOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE:-10MB}</maxFileSize>
            <!-- 日志文件的总大小,0 表示不限制 -->
            <totalSizeCap>${LOGBACK_ROLLINGPOLICY_TOTAL_SIZE_CAP:-0}</totalSizeCap>
            <!-- 日志文件的保留天数 -->
            <maxHistory>${LOGBACK_ROLLINGPOLICY_MAX_HISTORY:-30}</maxHistory>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>DENY</onMatch>
            <onMismatch>ACCEPT</onMismatch>
        </filter>
    </appender>

    <!-- 文件 Appender for ERROR logs only -->
    <appender name="ERROR_LOGS" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
                <pattern>${PATTERN_DEFAULT}</pattern>
            </layout>
        </encoder>
<!--        ${user.home}/logs/${spring.application.name}.log-->
        <file> ${LOG_FILE}-error.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOGBACK_ROLLINGPOLICY_FILE_NAME_PATTERN:-${LOG_FILE}-error.%d{yyyy-MM-dd}.%i.gz}</fileNamePattern>
            <cleanHistoryOnStart>${LOGBACK_ROLLINGPOLICY_CLEAN_HISTORY_ON_START:-false}</cleanHistoryOnStart>
            <maxFileSize>${LOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE:-10MB}</maxFileSize>
            <totalSizeCap>${LOGBACK_ROLLINGPOLICY_TOTAL_SIZE_CAP:-0}</totalSizeCap>
            <maxHistory>${LOGBACK_ROLLINGPOLICY_MAX_HISTORY:-30}</maxHistory>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
    </appender>

    <!-- 异步写入日志,提升性能 -->
    <appender name="ASYNC_ALL" class="ch.qos.logback.classic.AsyncAppender">
        <discardingThreshold>0</discardingThreshold>
        <queueSize>256</queueSize>
        <appender-ref ref="ALL_LOGS"/>
    </appender>

    <appender name="ASYNC_ERROR" class="ch.qos.logback.classic.AsyncAppender">
        <discardingThreshold>0</discardingThreshold>
        <queueSize>256</queueSize>
        <appender-ref ref="ERROR_LOGS"/>
    </appender>

    <!-- SkyWalking GRPC 日志收集,实现日志中心。注意:SkyWalking 8.4.0 版本开始支持 -->
    <appender name="GRPC" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
                <pattern>${PATTERN_DEFAULT}</pattern>
            </layout>
        </encoder>
    </appender>

    <!-- 本地环境 -->
    <springProfile name="local">
        <root level="INFO">
            <appender-ref ref="STDOUT"/>
            <appender-ref ref="GRPC"/> <!-- 本地环境下,如果不想接入 SkyWalking 日志服务,可以注释掉本行 -->
            <appender-ref ref="ASYNC_ALL"/>
            <appender-ref ref="ASYNC_ERROR"/>
        </root>
    </springProfile>
    <!-- 其它环境 -->
    <springProfile name="dev,test,stage,prod,default,pre">
        <root level="INFO">
            <appender-ref ref="STDOUT"/>
            <appender-ref ref="ASYNC_ALL"/>
            <appender-ref ref="ASYNC_ERROR"/>
            <appender-ref ref="GRPC"/>
        </root>
    </springProfile>

</configuration>

标签:ROLLINGPOLICY,lg,log,项目,LOG,PATTERN,FILE,LOGBACK,springboot
From: https://www.cnblogs.com/jf666/p/18509839

相关文章

  • el-dialog用v-if控制不同弹窗的显示
    可自定义弹窗的名称,宽度,是否可见;页面中可在一个dialog中写,内部用v-if控制不同弹窗的显示<el-dialog:title="dialog.title":visible.sync="dialog.visible":width="dialog.width"append-to-body><divv-if="dialog.title=='查看'||di......
  • springboot琴行培训机构管理系统-计算机毕业设计源码49732
    目 录摘要1绪论1.1研究背景1.2 研究意义1.3论文结构与章节安排2 系统分析2.1可行性分析2.2系统流程分析2.2.1数据新增流程2.2.2 数据删除流程2.3 系统功能分析2.3.1功能性分析2.3.2非功能性分析2.4本章小结3系统总体设计3.1系......
  • 【Java】【SpringBoot】i18n国际化
    前提SpingBoot项目已添加Web依赖步骤打开资源管理器(resources)新建i18n文件夹。右击,创建资源包。当然,后续也可以添加语言包注:名称一定要messages向资源包添加学习区域设置对应配置文件语言信息中文简体(messages_zh_cn.properties)sys.config.newParameters=新增参......
  • project项目管理下载:附安装包+保姆级教程
    如大家所熟悉的,Project是一种用的比较多的项目管理软件,它主要用于帮助项目经理在各个方面高效地规划、监控、并管理项目。这款软件支持任务分配、进度跟踪、资源管理、和财务预算等关键领域的管理工作。其中,资源管理功能尤为突出,可以在确保资源高效分配的同时,优化整个项目的执......
  • JAVA开源项目 基于Vue和SpringBoot甘肃非物质文化网站
    本文项目编号T042,文末自助获取源码\color{red}{T042,文末自助获取源码}......
  • JAVA开源项目 基于Vue和SpringBoot网上购物商城
    本文项目编号T041,文末自助获取源码\color{red}{T041,文末自助获取源码}......
  • 《HelloGitHub》第 103 期
    兴趣是最好的老师,HelloGitHub让你对编程感兴趣!简介HelloGitHub分享GitHub上有趣、入门级的开源项目。github.com/521xueweihan/HelloGitHub这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言Python、Java、Go、C/C++、Swift...让你在短......
  • (赠源码)基于python+HTML5+flask+mysql技术的酒店在线系统的设计与实现89223-计算机毕业
    目录1绪论1.1课题背景及意义1.1.1课题背景1.1.2课题意义1.2 研究现状1.2.1国外研究现状1.2.2 国内研究现状2 开发工具和开发平台2.1关键性知识及技术简介2.1.1HTML5介绍2.1.2 Flask框架概述2.2Python简介2.3 开发环境及工具3系统分......
  • 数据科学项目管理的最佳实践
    文章开头段落:数据科学项目管理的最佳实践包括项目定义与规划、团队构建与合作、数据管理、流程与工具、沟通与报告。其中,项目定义与规划是项目成功的关键因素,它要求明确项目的目标、范围、时间线和预期结果。在这一阶段中,以问题为导向,制定合理的假设条件、识别关键假设,并为接下......
  • 基于Springboot+Vue的候鸟监测数据管理系统 (含源码数据库)
    1.开发环境开发系统:Windows10/11架构模式:MVC/前后端分离JDK版本:JavaJDK1.8开发工具:IDEA数据库版本:mysql5.7或8.0数据库可视化工具:navicat服务器:SpringBoot自带apachetomcat主要技术:Java,Springboot,mybatis,mysql,vue2.视频演示地址3.功能这个系......