DocumentDB 创建索引

为了将日志输出从 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>

配置说明:

  1. Console 输出:使用 ConsoleAppender,将日志输出到 IDEA 的 Console 中。

  2. 日志文件输出:使用 RollingFileAppender,日志输出到指定的文件中,同时设定了滚动策略(即文件达到一定大小后创建新文件)。

    • LOG_FILE 是存储普通日志的文件路径(如 logs/app.log)。
    • ERROR_LOG_FILE 是存储错误级别日志的文件路径(如 logs/error.log)。
    • 滚动策略使用 SizeBasedRollingPolicy,当日志文件大小超过 10MB 时会滚动创建新的日志文件,并保留最近的 5 个日志文件。
  3. 日志格式:日志格式化器 PatternLayout 使用如下格式输出:

    • %d{yyyy-MM-dd HH:mm:ss}:日期时间
    • %thread:线程名称
    • %level:日志级别(INFO、ERROR 等)
    • %logger{36}:日志记录器的名称
    • %msg:日志消息
    • %n:换行符
  4. 日志级别root 记录器设置为 INFO 级别,输出到控制台和文件。如果想调试,可以将 level="INFO" 改成 DEBUG 以输出更多信息。

logback.xml 文件集成到项目中:

  1. 在你的 src/main/resources 目录下创建一个文件夹,命名为 resources,并将此配置文件命名为 logback.xml,放置到 src/main/resources 目录下。

  2. 确保你的 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 配置文件,你可以让程序运行时的日志记录到指定的文件,并且同时控制日志输出的格式、滚动策略、日志级别等。

posted @ 2024-10-11 01:27  gongchengship  阅读(1)  评论(0编辑  收藏  举报