<?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完全区分了,并且按时间拆分了
张小明
前端开发工程师
如何判断车灯性能是否达标?
理解车灯的重要性车灯是我们行驶安全的守护者,发挥着至关重要的作用。无论是在夜晚还是恶劣天气下,良好的车灯能够显著提高我们的能见度,确保能够及时发现周围的障碍。尤其是在城市复杂的交通环境中,高性能的车灯如安亿仕AES 车灯…
基于Django的健康饮食推荐系统源码设计与文档
前言在全民健康饮食意识提升、传统饮食推荐存在 “个性化不足、营养数据不精准、场景适配差” 的痛点背景下,基于 Django 的健康饮食推荐系统构建具有重要的用户与实用价值:从用户层面,系统整合个人健康档案(年龄、体重、基础疾病…
【Xftp8】装 Linux 传文件工具怕翻车?看这篇!一步不错,免费能用~
一、前言 新手朋友先搞懂:你要是想给 Linux 服务器传文件(比如传代码、传配置文件),或者从服务器拉文件(比如拉备份、拉日志),就用 Xftp!它跟 Xshell 都是 Windows 软件,…
海南封关终极拆解:福利红利“外挂”,超越你的认知
作者:大掌柜黄利明12 月 18 日,海南全岛正式封关,成为 “海关监管特殊区域”。估计一小部分人会悄悄地 “备好麻袋去扫货”,还有一小部分人在悄悄忙着注册公司淘金海南,另一大半人则还在问 “这事儿到底跟我有关系&…
研究生必看:毕业论文初稿提交导师前的十大注意事项
许多学校通常都是二月底三月初预答辩,3月中旬之前通过教育部学位中心平台送同行评审。今天的日志是想从同行评审的视角将我阅读过的历届研究生毕业论文初稿中常见的问题汇总到这里,实际上需要注意的问题肯定不止十条,欢迎大家补充。研究生同学…
Android 基础入门教程之TableLayout(表格布局)
2.2.3 TableLayout(表格布局)本节引言:前面我们已经学习了平时实际开发中用得较多的线性布局(LinearLayout)与相对布局(RelativeLayout), 其实学完这两个基本就够用了,笔者在实际开发中用得比较多的也是这两个,当然作为一个好学的程序猿, 都是喜欢刨根问题的,所以虽…