<?xml version="1.0" encoding="UTF-8"?><configurationscan="true"scanPeriod="30 seconds"><!-- 1. 基础变量定义 --><propertyname="LOG_APP_NAME"value="SmartProcurement"/><propertyname="LOG_BASE_PATH"value="logs"/><propertyname="LOG_PATTERN"value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"/><!-- 2. 控制台输出配置 --><appendername="CONSOLE"class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>${LOG_PATTERN}</pattern><charset>UTF-8</charset></encoder></appender><!-- 3. 普通日志文件输出(按天滚动 + 大小切割) --><appendername="FILE"class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_BASE_PATH}/${LOG_APP_NAME}.log</file><rollingPolicyclass="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_BASE_PATH}/${LOG_APP_NAME}-%d{yyyy-MM-dd}.%i.log</fileNamePattern><maxHistory>30</maxHistory><timeBasedFileNamingAndTriggeringPolicyclass="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><pattern>${LOG_PATTERN}</pattern><charset>UTF-8</charset></encoder></appender><!-- 4. 错误日志单独输出 --><appendername="ERROR_FILE"class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_BASE_PATH}/${LOG_APP_NAME}-error.log</file><filterclass="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><rollingPolicyclass="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_BASE_PATH}/${LOG_APP_NAME}-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern><maxHistory>30</maxHistory><timeBasedFileNamingAndTriggeringPolicyclass="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><pattern>${LOG_PATTERN}</pattern><charset>UTF-8</charset></encoder></appender><!-- 5. SQL 日志单独配置(MyBatis/MyBatis-Plus 场景) --><loggername="com.iflytek.knowledge.mapper"level="DEBUG"additivity="false"><appender-refref="CONSOLE"/><appender-refref="FILE"/></logger><!-- 6. 按环境区分日志级别 --><springProfilename="test"><rootlevel="INFO"><appender-refref="CONSOLE"/><appender-refref="FILE"/><appender-refref="ERROR_FILE"/></root></springProfile><springProfilename="prod"><!-- <root level="INFO">--><!-- <appender-ref ref="FILE"/>--><!-- <appender-ref ref="ERROR_FILE"/>--><!-- </root>--><!-- <!– 生产环境关闭 SQL 调试日志 –>--><!-- <logger name="com.iflytek.knowledge.mapper" level="INFO" additivity="false">--><!-- <appender-ref ref="FILE"/>--><!-- </logger>--><rootlevel="INFO"><appender-refref="CONSOLE"/><appender-refref="FILE"/><appender-refref="ERROR_FILE"/></root></springProfile></configuration>日志打印配置:logback-spring.xml配置;info和error完全区分了,并且按时间拆分了
张小明
前端开发工程师
基于Python的健身房管理系统源码设计与文档
前言在健身房精细化运营需求提升、传统管理模式存在 “会员管理混乱、课程预约低效、数据统计滞后、私教跟进缺位” 的痛点背景下,基于 Python 的健身房管理系统构建具有重要的商业与实用价值:从会员管理层面,系统依托 Python 的数据库交互能…
NVIDIA HGX™ B300 GPU Droplet 服务器,即将上线DigitalOcean 云平台!
人工智能正以史无前例的速度演进,新的模型和繁重的负载不断突破可能的边界。从复杂的大型语言模型(LLM)到精密的科学模拟,开发者与企业都需要获得最强大、最高效的算力基础设施。在 DigitalOcean,我们致力于提供顶级的…
基于SpringBoot旅游包车管理系统毕业设计项目源码
题目简介 在旅游包车行业存在 “供需对接碎片化、车辆调度效率低、行程监管缺失、费用结算不透明” 的行业痛点背景下,基于 SpringBoot 的旅游包车管理系统的构建具有重要现实意义与产业价值:从游客 / 旅行社端来看,系统打破传统线下找车、议…
硬件升级全攻略:从评估到优化
硬件升级前的准备工作评估当前硬件配置,包括处理器、内存、存储、显卡等关键部件的型号和性能。使用系统信息工具或第三方软件如CPU-Z、GPU-Z获取详细数据。明确升级目标和预算,确定是提升游戏性能、多任务处理能力还是存储速度。不同需求对应不同的硬件…
基于SpringBoot框架的个人博客系统毕业设计项目源码
题目简介在自媒体创作普及、个人内容表达需求日益增长的背景下,传统博客系统存在开发复杂度高、功能适配性差、内容管理低效、交互体验单一的痛点,难以满足创作者轻量化搭建、精细化运营个人内容平台的需求。基于 SpringBoot 框架的个人博客系统构建具有…
C++三大特性:封装、继承与多态深度解析
引言 C作为一门强大的面向对象编程语言,其核心的三大特性——封装、继承和多态,构成了面向对象编程的基石。 这三大特性不仅使代码更模块化、可重用,还大大提升了软件的可维护性和扩展性。本文将深入探讨这三大特性的技术细节、实现机制和最…