在 spring boot 项目中,默认使用 logback 作为日志框架。logback 是一个高效、灵活的日志记录工具,支持多种日志格式和输出目标(如控制台、文件等)。通过配置 logback-spring.xml
文件,可以自定义日志的输出方式和格式。
以下是 spring boot 中 logback 日志配置的详细说明:
1. 创建或修改 logback-spring.xml
在 spring boot 项目中,默认会使用 logback-spring.xml
文件来配置日志。如果该文件不存在,可以在 src/main/resources
目录下创建一个。
<?xml version="1.0" encoding="utf-8"?> <configuration> <!-- 配置控制台输出 --> <appender name="console" class="ch.qos.logback.core.consoleappender"> <encoder> <pattern>%d{yyyy-mm-dd hh:mm:ss.sss} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- 配置文件输出 --> <appender name="file" class="ch.qos.logback.core.rolling.rollingfileappender"> <file>logs/app.log</file> <rollingpolicy class="ch.qos.logback.core.rolling.timebasedrollingpolicy"> <filenamepattern>logs/app-%d{yyyy-mm-dd}.log</filenamepattern> <maxhistory>30</maxhistory> </rollingpolicy> <encoder> <pattern>%d{yyyy-mm-dd hh:mm:ss.sss} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- 配置错误日志输出 --> <appender name="error_file" class="ch.qos.logback.core.rolling.rollingfileappender"> <file>logs/error.log</file> <filter class="ch.qos.logback.classic.filter.thresholdfilter"> <level>error</level> </filter> <rollingpolicy class="ch.qos.logback.core.rolling.timebasedrollingpolicy"> <filenamepattern>logs/error-%d{yyyy-mm-dd}.log</filenamepattern> <maxhistory>30</maxhistory> </rollingpolicy> <encoder> <pattern>%d{yyyy-mm-dd hh:mm:ss.sss} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- 根日志配置 --> <root level="info"> <appender-ref ref="console"/> <appender-ref ref="file"/> </root> <!-- 自定义包的日志级别 --> <logger name="com.example" level="debug" additivity="false"> <appender-ref ref="console"/> <appender-ref ref="file"/> </logger> <!-- 配置错误日志 --> <logger name="org.springframework.web.servlet.mvc.method.annotation.requestmappinghandleradapter" level="error"> <appender-ref ref="error_file"/> </logger> </configuration>
2. 配置说明
2.1 日志格式
通过 <encoder>
标签可以配置日志的输出格式。常用占位符包括:
%d{yyyy-mm-dd hh:mm:ss.sss}
:日期和时间[%thread]
:线程名%-5level
:日志级别(右对齐,宽度 5)%logger{36}
:类名或包名(最多显示 36 个字符)%msg
:日志消息
2.2 控制台输出
<appender name="console" class="ch.qos.logback.core.consoleappender">
配置控制台输出,日志会直接打印在终端。
2.3 文件输出
<appender name="file" class="ch.qos.logback.core.rolling.rollingfileappender">
文件输出支持滚动策略,按天生成日志文件:
logs/app.log
:当前日志文件logs/app-yyyy-mm-dd.log
:历史日志文件
滚动策略参数说明:
<filenamepattern>
:历史日志文件的命名规则<maxhistory>
:保留 30 天的历史日志
2.4 错误日志输出
<appender name="error_file" class="ch.qos.logback.core.rolling.rollingfileappender">
专门记录错误级别的日志,通过 <filter>
标签设置只记录 error
级别的日志。
2.5 根日志配置
<root level="info">
设置根日志的级别为 info
,并将输出目标指向控制台和文件。
2.6 自定义包的日志级别
通过 <logger>
标签可以为特定包或类配置不同的日志级别:
name="com.example"
:指定包名level="debug"
:设置日志级别为debug
additivity="false"
:表示不继承父 logger 的配置
3. 配置生效条件
确保 logback-spring.xml
文件位于 src/main/resources
目录下。如果项目中没有该文件,spring boot 会使用默认日志配置。
4. 常见问题
4.1 日志文件不生成
- 检查
<file>
和<filenamepattern>
的路径是否正确。 - 确保程序有写入权限。
4.2 自定义包的日志不生效
- 确保
name
属性与实际类名或包名完全一致。 - 确保
additivity="false"
,避免继承父 logger 的配置。
4.3 日志级别无效
- 确保
<logger>
标签中的level
配置正确(如debug
,info
,error
)。 - 确保没有其他配置覆盖了该日志级别。
5. 总结
通过以上配置,可以灵活地定义 spring boot 应用的日志输出方式和格式。可以根据实际需求调整日志级别、输出目标和文件路径,从而更好地监控和调试应用。
到此这篇关于springboot中logback日志配置的详细说明的文章就介绍到这了,更多相关springboot logback日志配置内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论