NX PowerLite:多格式支持的文档优化专家

核心内容摘要

Asian Beauty Z-Image Turbo企业应用:与Photoshop插件联动实现AI初稿+人工精修工作流
使用Dify构建FRCRN语音降噪AI Agent:零代码工作流

把坑都踩完了!AI论文工具 千笔AI VS 学术猹,自考写作文首选

下面给出一份“logback 速查手册”从“零配置能跑”到“线上调优”一条线捋清复制即可用。

logback 是什么作者log4j 创始人 Ceki Gülcü 的“亲儿子”SLF4J 默认实现。

特点速度更快、内存占用更低、XML/Groovy 双配置、SiftingAppender多租户/多文件自动分离、自动热加载。

零依赖就能跑Spring Boot 已内置!-- 实际不用再引spring-boot-starter-web 已传递 -- dependency groupIdch.qos.logback/groupId artifactIdlogback-classic/artifactId /dependency代码里private static final Logger log LoggerFactory.getLogger(UserService.class); log.info(order {} paid, orderId);

核心三件套Logger写日志 → Appender写到哪 → Encoder/Layout怎么格式化

最常用配置文件src/main/resources/logback-spring.xmlSpringBoot 专用?xml version

0 encodingUTF-8? configuration scantrue scanPeriod30 seconds !-- 30s热加载 -- springProfile namedev,test !-- 开发/测试环境彩色控制台 -- appender nameCONSOLE classch.qos.logback.core.ConsoleAppender encoder classch.qos.logback.classic.encoder.PatternLayoutEncoder pattern%cyan(%d{HH:mm:ss.SSS}) %highlight(%-5level) %magenta([%thread]) %yellow(%logger{36}:%line) - %msg%n/pattern charsetUTF-8/charset /encoder /appender root levelINFO appender-ref refCONSOLE/ /root /springProfile springProfile nameprod !-- 生产只按大小/日期滚动文件 -- property nameLOG_HOME value/var/log/app/ appender nameFILE classch.qos.logback.core.rolling.RollingFileAppender file${LOG_HOME}/business.log/file rollingPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy fileNamePattern${LOG_HOME}/business.%d{yyyy-MM-dd}.%i.log.gz/fileNamePattern maxFileSize200MB/maxFileSize maxHistory30/maxHistory totalSizeCap20GB/totalSizeCap /rollingPolicy encoder pattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}:%line - %msg%n/pattern charsetUTF-8/charset /encoder /appender !-- 异步提升性能丢日志

01%可接受 -- appender nameASYNC classch.qos.logback.classic.AsyncAppender appender-ref refFILE/ queueSize2048/queueSize discardingThreshold0/discardingThreshold includeCallerDatafalse/includeCallerData /appender root levelINFO appender-ref refASYNC/ /root /springProfile !-- 单独给 error 再写一份方便告警 -- appender nameERROR classch.qos.logback.core.rolling.RollingFileAppender file${LOG_HOME:-./logs}/error.log/file filter classch.qos.logback.classic.filter.LevelFilter levelERROR/level onMatchACCEPT/onMatch onMismatchDENY/onMismatch /filter rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy fileNamePattern${LOG_HOME:-./logs}/error.%d{yyyy-MM-dd}.log.gz/fileNamePattern maxHistory15/maxHistory /rollingPolicy encoder pattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %logger{36}:%line - %msg%n/pattern /encoder /appender root levelINFO appender-ref refERROR/ /root /configuration要点文件名必须是 logback-spring.xml 才能用 springProfile 动态区分环境否则启动报错。

scantrue 修改配置后 30 秒自动生效无需重启。

AsyncAppender 队列满时会丢弃 TRACE/DEBUGINFO 以上不丢discardingThreshold0。

多租户/多文件自动分离SiftingAppender 实战appender nameSIFT classch.qos.logback.classic.sift.SiftingAppender discriminator keytenantId/key defaultValuedefault/defaultValue /discriminator sift appender classch.qos.logback.core.rolling.RollingFileAppender file/var/log/app/${tenantId}.log/file rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy fileNamePattern/var/log/app/${tenantId}.%d{yyyy-MM-dd}.log.gz/fileNamePattern maxHistory15/maxHistory /rollingPolicy encoder pattern%d{HH:mm:ss.SSS} [%thread] %level %logger{36} - %msg%n/pattern /encoder /appender /sift /appender代码里放 discriminatorMDC.put(tenantId, TenantContext.get());即可按租户自动拆文件再也不用 if-else 新建 logger。

线上调优 checklist关闭 debug 级别logger namecom.alibaba.nacos levelWARN/关闭 includeCallerDataAsyncAppender 里拿行号会慢 5~10 倍。

使用 SizeAndTimeBasedRollingPolicy 而非 FixedWindowRollingPolicy大并发下减少重命名竞争。

磁盘独立日志盘与业务盘分离避免 java.io.IOException: No space left on device 把应用拖死。

监控文件句柄数 /proc/sys/fs/file-max日志写入延迟appender.getQueueSize() / appender.getDiscardingCount()接入 Prometheus通过 logback-metrics 暴露 logback_events_total{levelerror} 做告警。

常见坑现象原因快速 fix修改 logback.xml 不生效文件名写成 logback.xml 却被 spring 提前加载改名 logback-spring.xml控制台彩色失效Windows 老版本 ANSI 不支持加 jansi 依赖或关闭彩色启动报 “no applicable action for [springProfile]”用了普通 logback.xml换 logback-spring.xml日志文件中文乱码没有 charsetUTF-8/charset全部 encoder 加 charset一张图记忆 Logger → 级别开关 ↓ Appender → 写控制台文件ES ↓ Encoder → 长啥样JSON? pattern? ↓ RollingPolicy → 多大切割保留几天把上面模板直接粘进项目30 秒内就能拥有“彩色控制台 大小时间滚动 异步写盘 ERROR 单独文件”的标配日志再按环境切 profile线上稳得一批。

祝排错愉快

免费麻豆-免费麻豆应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123