自由日志轮转配置指南 | AI生成和翻译

Home 2025.09

以下是简短说明,以及可粘贴到 server.xml 中的配置示例。

Liberty 日志轮转工作原理


常用 server.xml 配置方案

1) 基于大小的轮转(经典方案)

保留最多 10 个文件,单个文件最大 256 MB

<logging
  logDirectory="${server.output.dir}/logs"
  maxFileSize="256"
  maxFiles="10"/>

效果:当 messages.logtrace.log 超过 256 MB 时,Liberty 会将其轮转为带时间戳的文件,最多保留 10 个历史文件(不影响 console.log)(openliberty.io

2) 基于时间的轮转(例如每日午夜)

<logging
  rolloverStartTime="00:00"
  rolloverInterval="1d"/>

效果:messages.logtrace.log 每日 00:00 进行轮转。也可使用分钟(m)或小时(h)单位,例如 30m6hopenliberty.io

3) 大小与时间组合(典型生产环境)

<logging
  logDirectory="${server.output.dir}/logs"
  maxFileSize="256"
  maxFiles="14"
  rolloverStartTime="00:00"
  rolloverInterval="1d"/>

效果:满足任一条件(达到大小限制或到达轮转时间)即触发轮转,并保留 14 个历史文件(IBM

4) 控制或禁用 console.log 增长

console.log 不支持轮转;可通过关闭并依赖 messages.log 来管理

<logging
  consoleLogLevel="OFF"
  copySystemStreams="false"/>

注意:关闭控制台日志仅会停止 Liberty 自身向 console.log 的日志复制,JVM 仍可能将 -verbose:gc 等信息写入标准输出/错误流(openliberty.io

5) 命名/格式调整(可选)

<logging
  messageFileName="messages.log"
  traceFileName="trace.log"
  messageFormat="JSON"/>

JSON 格式便于接入日志分析栈;如无特殊需求建议保持默认设置(openliberty.io


HTTP 访问日志(独立配置)

启用访问日志并设置每日午夜轮转:

<httpAccessLogging id="accessLogging"
  rolloverStartTime="00:00"
  rolloverInterval="1d"/>

<httpEndpoint id="defaultHttpEndpoint"
  httpPort="9080" httpsPort="9443"
  accessLoggingRef="accessLogging"/>

(也可直接将 rolloverStartTime/rolloverInterval 配置在 httpEndpoint<accessLogging …/> 子元素中)(openliberty.io


快速核查清单

如需定制具体参数,请提供当前 server.xml 片段或留存需求(例如“保留约7天”或“总量控制在2 GB”),我将为您提供精确配置值。


Back Donate