Linux WebLogic日志轮转实践
一 内置轮转配置 Server Log
- 在 WebLogic 管理控制台进入:Environment → Servers → 目标服务器 → Logging → General,按需选择:
- Rotation Type:
- By Size:按大小切割,设置 Rotation File Size(默认开发模式触发为 500 KB,生产模式为 5000 KB)。
- By Time:按时间切割,设置 Begin Rotation Time 与 Rotation Interval。
- Limit Number of Retained Files:开启后可设置 Files to Retain,超出后循环覆盖最旧文件。
- Log File Rotation Directory:指定轮转文件存放目录(相对或绝对路径)。
- File Name:在文件名中嵌入时间格式占位符(如 %yyyy%%MM%%dd%%hh%%mm%),轮转后文件名将带时间戳。
- 重要限制:WebLogic 对本地日志设置 500 MB 的强制硬轮转阈值,防止日志无限增长。
- 变更流程:在 Change Center 点击 Lock & Edit → 修改 → Activate Changes;部分设置需重启生效。
二 使用 logrotate 管理 server.log access.log 等文件
- 适用场景:对 server.log、access.log、diagnostic.log 等按天/按大小压缩归档,便于运维与审计。
- 操作步骤:
- 确认日志路径,例如 /u01/app/weblogic/domain_name/logs/*.log。
- 新建配置 /etc/logrotate.d/weblogic:
/u01/app/weblogic/domain_name/logs/*.log {
daily
rotate 7
missingok
notifempty
compress
delaycompress
copytruncate
create 0644 weblogic weblogic
}
- 关键参数说明:
- daily:按天轮转;可改为 size 100M 按大小触发。
- rotate 7:保留最近 7 份归档。
- compress / delaycompress:压缩旧日志,避免压缩正在写入的文件。
- copytruncate:复制后截断原文件,适用于不支持信号轮转的进程。
- create:轮转后重建文件并设定权限与属主。
- 手动测试与生效:
sudo logrotate -d /etc/logrotate.d/weblogic # 语法检查(dry-run)
sudo logrotate -f /etc/logrotate.d/weblogic # 强制执行一次
- 定时执行:logrotate 通常由 cron 每日自动运行,无需额外添加计划任务。
三 应用日志框架的轮转配置
- 若应用使用 JDK java.util.logging(常见于 WebLogic 应用日志):
- 若使用 Log4j / Log4j2:在应用的 log4j.properties / log4j2.xml 中配置 RollingFileAppender(按大小/时间滚动、保留策略、压缩等),并重启应用使其生效。
四 关键注意事项与最佳实践
- 避免重复轮转:同一日志文件不要同时启用 WebLogic 内置轮转 与 logrotate copytruncate,以免出现写入偏移或重复归档;建议二选一,或仅用 logrotate 的 postrotate 发送信号给应用(若应用支持)。
- 权限与属主:确保 create 指定的用户/组(如 weblogic:weblogic)对日志目录有写权限,避免因权限不足导致轮转失败。
- 保留策略与容量:结合磁盘容量设置 rotate 数量或 Files to Retain,并关注 WebLogic 的 500 MB 强制硬轮转阈值,防止磁盘被占满。
- 变更生效方式:控制台修改后需 Activate Changes,部分设置需 重启;logrotate 配置修改后可用 -d/-f 验证与强制执行。