logback 配置将IDEA 的 console log 存入到文件
为了将日志输出从 IDEA 的 Console 重定向到文件,你可以使用 Logback 作为日志框架,并通过配置文件来实现这一功能。下面是一个示例 logback.xml
配置文件,它会将日志同时输出到 Console 和 文件 中。
logback.xml
配置文件示例
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 控制日志文件保存路径和文件名 -->
<property name="LOG_FILE" value="logs/app.log" />
<property name="ERROR_LOG_FILE" value="logs/error.log" />
<!-- 控制台输出配置 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 普通日志文件输出配置 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 日志文件路径 -->
<file>${LOG_FILE}</file>
<!-- 文件滚动策略(按照文件大小滚动) -->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeBasedRollingPolicy">
<fileNamePattern>logs/app.%i.log</fileNamePattern>
<!-- 文件最大尺寸,达到 10MB 后创建新文件 -->
<maxFileSize>10MB</maxFileSize>
<!-- 保留的最大历史日志文件数量 -->
<maxHistory>5</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 错误日志单独记录 -->
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${ERROR_LOG_FILE}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeBasedRollingPolicy">
<fileNamePattern>logs/error.%i.log</fileNamePattern>
<maxFileSize>10MB</maxFileSize>
<maxHistory>5</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
<!-- 只记录 ERROR 级别的日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- Root logger 配置:输出到控制台和文件 -->
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
<appender-ref ref="ERROR_FILE" />
</root>
</configuration>
配置说明:
-
Console 输出:使用
ConsoleAppender
,将日志输出到 IDEA 的 Console 中。 -
日志文件输出:使用
RollingFileAppender
,日志输出到指定的文件中,同时设定了滚动策略(即文件达到一定大小后创建新文件)。LOG_FILE
是存储普通日志的文件路径(如logs/app.log
)。ERROR_LOG_FILE
是存储错误级别日志的文件路径(如logs/error.log
)。- 滚动策略使用
SizeBasedRollingPolicy
,当日志文件大小超过 10MB 时会滚动创建新的日志文件,并保留最近的 5 个日志文件。
-
日志格式:日志格式化器
PatternLayout
使用如下格式输出:%d{yyyy-MM-dd HH:mm:ss}
:日期时间%thread
:线程名称%level
:日志级别(INFO、ERROR 等)%logger{36}
:日志记录器的名称%msg
:日志消息%n
:换行符
-
日志级别:
root
记录器设置为INFO
级别,输出到控制台和文件。如果想调试,可以将level="INFO"
改成DEBUG
以输出更多信息。
将 logback.xml
文件集成到项目中:
-
在你的 src/main/resources 目录下创建一个文件夹,命名为
resources
,并将此配置文件命名为logback.xml
,放置到src/main/resources
目录下。 -
确保你的
pom.xml
或者build.gradle
文件中引入了 Logback 依赖。如果没有的话,添加以下依赖。
Maven 依赖:
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version> <!-- 替换为最新版本 -->
</dependency>
Gradle 依赖:
implementation 'ch.qos.logback:logback-classic:1.2.3' // 替换为最新版本
如何验证:
- 运行程序后,日志将同时输出到 IDEA 的控制台和指定的文件。
- 普通日志记录在
logs/app.log
中,错误级别日志单独记录在logs/error.log
中。
通过这个 logback.xml
配置文件,你可以让程序运行时的日志记录到指定的文件,并且同时控制日志输出的格式、滚动策略、日志级别等。