温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java Logger 怎样滚动日志

发布时间:2026-09-12 12:09:08 来源:亿速云 阅读:95 作者:小樊 栏目:编程语言

在 Java 中,“滚动日志”通常指日志文件按大小、时间等策略切割(roll over),避免单个日志文件无限变大。常用方案有 JDK 自带 java.util.loggingLog4j2Logback。下面分别说明。


一、JDK 自带 Logger(java.util.logging)

JDK 自带的 java.util.logging 支持基于大小的滚动(不原生支持按时间)。

示例:按大小滚动

# logging.properties
handlers=java.util.logging.FileHandler
java.util.logging.FileHandler.pattern = app%g.log
java.util.logging.FileHandler.limit = 1024000   # 单个文件 1MB
java.util.logging.FileHandler.count = 5         # 最多 5 个文件
java.util.logging.FileHandler.formatter = java.util.util.logging.SimpleFormatter
  • %g:文件编号
  • 文件如:app0.log, app1.log
  • 写满后自动滚动

二、Logback(最常用,Spring Boot 默认)

1️⃣ 按时间滚动

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>app.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>app.%d{yyyy-MM-dd}.log</fileNamePattern>
        <maxHistory>30</maxHistory>
    </rollingPolicy>
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger - %msg%n</pattern>
    </encoder>
</appender>

2️⃣ 按大小 + 时间滚动(推荐)

<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
    <fileNamePattern>app.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
    <maxFileSize>100MB</maxFileSize>
    <maxHistory>30</maxHistory>
    <totalSizeCap>10GB</totalSizeCap>
</rollingPolicy>

三、Log4j2(高性能)

按大小 + 时间滚动

<RollingFile name="RollingFile" fileName="app.log"
             filePattern="app-%d{yyyy-MM-dd}-%i.log">
    <PatternLayout pattern="%d %p %c{1.} - %m%n"/>
    <Policies>
        <TimeBasedTriggeringPolicy/>
        <SizeBasedTriggeringPolicy size="100MB"/>
    </Policies>
    <DefaultRolloverStrategy max="20"/>
</RollingFile>

四、常见滚动策略对比

方式 按大小 按时间 推荐度
JDK Logger
Logback ⭐⭐⭐⭐⭐
Log4j2 ⭐⭐⭐⭐

五、总结建议

  • 新项目 / Spring Boot:用 Logback
  • 高并发:用 Log4j2
  • 不想引第三方:用 JDK Logger(仅大小滚动)

如果你用的是 Spring Boot / 某个框架 / 特定日志库,可以告诉我,我可以给你更精确的配置。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI