logback.xml 是 Logback 框架默认 XML 配置文件,必须置于 src/main/resources/ 下,按 logback-test.xml → logback.xml → logback.groovy 顺序加载,文件名大小写敏感,配置错误将静默降级为控制台输出。

logback.xml 是 Logback 框架的默认 XML 格式配置文件,用于定义日志输出格式、级别、目的地(如控制台、文件)、滚动策略等。它不依赖外部注解或代码,启动时由 LoggerContext 自动加载,是 Java 应用(尤其 Spring Boot 项目)中最常用、最灵活的日志配置方式。
logback.xml 放在哪?类路径下必须是这个文件名
Logback 启动时按固定顺序查找配置文件:logback-test.xml → logback.xml → logback.groovy。生产环境通常用 logback.xml,且必须放在 src/main/resources/ 下(Maven/Gradle 默认类路径根目录)。如果放错位置(比如 src/main/java/ 或子目录),Logback 会回退到默认控制台输出,且控制台会打印警告:
WARN in ch.qos.logback.classic.LoggerContext[default] - No appenders present in context
- 文件名必须严格为
logback.xml(大小写敏感,不能叫Logback.xml或logback-config.xml) - Spring Boot 项目中,若同时存在
application.properties中的logging.config=...,优先以该配置为准 - 修改后需重启应用生效(Logback 默认不热重载 XML,除非显式启用
scan="true")
一个最小可用 logback.xml 长什么样
以下是最简但可运行的配置:定义一个控制台输出器(ConsoleAppender),绑定到 root logger,并设置日志级别为 INFO:
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
-
定义日志“去哪”,class属性必须是完整类名,如ch.qos.logback.core.ConsoleAppender或ch.qos.logback.core.rolling.RollingFileAppender -
决定“长啥样”,里的占位符如%d、%level、%msg是固定语法,不可拼错 -
是所有 logger 的默认父节点;单独的可覆盖特定包日志级别
常见需求:输出到文件并按天滚动
用 RollingFileAppender 替代 ConsoleAppender,配合 TimeBasedRollingPolicy 实现按天归档(如 app.log + app.log.2024-04-01):
本文档主要讲述的是Android的资源与国际化设置;资源是外部文件(不含代码的文件),它被代码使用并在编译时编入应用程序。Android支持不同类型的资源文件,包括XML,PNG以及JPEG文件XML文件根据描述的不同有不同格式。这份文档描述可以支持什么样的文件,语法,以及各种格式。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
logs/app.log logs/app.log.%d{yyyy-MM-dd} 30 %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
-
指定当前活跃日志文件路径,目录(如logs/)需存在或由应用有写权限创建 -
中的%d{...}格式必须与TimeBasedRollingPolicy兼容,否则滚动失败且无报错提示 -
控制保留多少天的历史文件,单位是“天”,不是文件个数 - 若要同时输出到控制台和文件,需在
中添加两个,分别引用CONSOLE和FILE
容易被忽略的坑:异步日志、变量替换、profile 活性切换
实际项目中,直接写死路径或级别很快会不够用。Logback 提供了 、(Spring Boot)、AsyncAppender 等机制,但配置稍有偏差就静默失效:
- 使用
后,必须用${LOG_PATH}引用,不能写成$LOG_PATH或#{LOG_PATH} - Spring Boot 中推荐用
,这样可从application.yml统一管理路径 - 加
AsyncAppender提升性能时,必须把真正干活的 appender(如FILE)嵌套在内部,再引用它 —— 不是把AsyncAppender当作顶层 appender 直接用 - Logback 本身不支持 profile(如
dev/prod),得靠 Spring Boot 的标签包裹配置块,且该标签仅在 Spring Boot 环境下有效
XML 格式看着简单,但缩进错误、标签未闭合、类名拼错、占位符大小写不对,都会导致 Logback 降级为默认配置——而它几乎不报错,只在启动日志里悄悄提示 “Ignoring configuration file”。真出问题时,先检查控制台有没有这类 WARN,再确认 XML 是否能被正确解析。









