logback如何设置每小时输出一个文件的appender

在Logback中,您可以使用TimeBasedRollingPolicy来每小时输出一个文件的Appender。下面是一个示例的Logback配置文件,展示了如何设置每小时滚动日志文件:

<configuration>
  <!-- 定义根日志级别 -->
  <root level="info">
    <!-- 控制台输出 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
      <encoder>
        <pattern>%d %-5level [%thread] %logger{36} - %msg%n</pattern>
      </encoder>
    </appender>

    <!-- 每小时滚动日志文件 -->
    <appender name="HOURLY_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
      <file>/path/to/logs/app.log</file>
      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>/path/to/logs/app_%d{yyyy-MM-dd_HH}.log</fileNamePattern>
        <maxHistory>24</maxHistory> <!-- 最多保留24个小时的历史日志文件 -->
      </rollingPolicy>
      <encoder>
        <pattern>%d %-5level [%thread] %logger{36} - %msg%n</pattern>
      </encoder>
    </appender>
  </root>

  <!-- 将Appender关联到相应的Logger -->
  <logger name="com.example" level="debug" additivity="false">
    <appender-ref ref="HOURLY_FILE" />
  </logger>

  <root level="info">
    <appender-ref ref="CONSOLE" />
  </root>
</configuration>

在上述配置中,HOURLY_FILE Appender使用TimeBasedRollingPolicy来设置文件名的模式,通过%d{yyyy-MM-dd_HH}实现每小时滚动。在这个示例中,每小时滚动的日志文件命名为类似 app_2022-07-15_11.log 的格式。

通过设置maxHistory参数,您可以控制保留的历史日志文件数量。在这个示例中,最多保留最近的24个小时的日志文件。

请注意,您需要将配置文件中的/path/to/logs/替换为您实际的日志文件路径。

希望这个示例能帮助您设置每小时输出一个文件的Appender。如有更多问题,请随时提问。