温馨提示×

温馨提示×

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

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

日志文件怎么分割

发布时间:2026-07-17 12:41:45 来源:亿速云 阅读:121 作者:小樊 栏目:编程语言

日志文件分割(Log Rotation)是运维和开发中常见的需求,目的是防止日志无限增长、占用磁盘空间,同时便于管理和排查问题。下面按常见场景给你系统讲解。


一、为什么要分割日志

  • 防止单个日志文件过大(如几十 GB)
  • 方便按时间/大小归档
  • 便于日志清理和备份
  • 避免影响程序性能

二、常见分割方式

1️⃣ 按大小分割

当日志达到一定大小后自动切分:

app.log
app.log.1
app.log.2

✅ 适合高频日志
❌ 不太直观(不好对应时间)


2️⃣ 按时间分割

按天、小时、分钟生成日志:

app.log
app-2026-01-21.log
app-2026-01-20.log

✅ 时间清晰
✅ 常用于业务日志


3️⃣ 按大小和时间的组合

最常见、最推荐:

app-2026-01-21.log
app-2026-01-21.log.1

三、Linux 下常用方案(重点)

✅ 方法一:使用 logrotate(最推荐)

1. 安装(一般系统自带)

which logrotate

2. 示例配置

/var/log/app/*.log {
    daily
    rotate 7
    size 100M
    compress
    missingok
    notifempty
    create 0644 app app
}

参数说明

参数 含义
daily 按天
rotate 7 保留 7 份
size 100M 超过 100M 才切
compress 压缩旧日志
missingok 日志不存在不报错
notifempty 空文件不切
create 新建日志文件权限

3. 手动测试

logrotate -vf /etc/logrotate.d/app

✅ 方法二:程序自身支持(如 Nginx)

Nginx 示例

access_log /var/log/nginx/access.log;

# 自动按时间切

配合 logrotate

/var/log/nginx/*.log {
    daily
    rotate 30
    compress
    postrotate
        nginx -s reload
    endscript
}

四、Java / Python / Node 示例

✅ Java(Logback)

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    <fileNamePattern>logs/app.%d{yyyy-MM-dd}.log</fileNamePattern>
    <maxHistory>7</maxHistory>
</rollingPolicy>

✅ Python(logging + RotatingFileHandler)

from logging.handlers import RotatingFileHandler

handler = RotatingFileHandler(
    "app.log",
    maxBytes=100*1024*1024,
    backupCount=7
)

✅ Node.js(winston)

new winston.transports.DailyRotateFile({
  filename: 'app-%DATE%.log',
  datePattern: 'YYYY-MM-DD',
  maxFiles: '7d'
})

五、Windows 下日志分割

  • 使用 PowerShell 定时脚本
  • 或程序内置日志轮转
  • 不建议手动管理

六、最佳实践 ✅

✅ 推荐组合:

  • 按天 + 限制大小
  • 保留 7~30 天
  • 自动压缩
  • 程序无需重启(或 reload)

七、你适合哪种?

你可以告诉我:

  • 操作系统(Linux / Windows)
  • 使用语言(Java / Python / Node / Go)
  • 是否有现成服务(Nginx / Docker / K8s)

我可以给你完全可复制的配置方案

向AI问一下细节

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

AI