Date Rolling File Appender

这是一个文件 appender,它根据可配置的时间而不是文件大小来滚动日志文件。 当使用日期文件 appender 时,您还应在应用程序终止时调用 log4js.shutdown,以确保完成所有剩余的异步写入。 尽管日期文件 appender 使用streamroller 库,但该库作为 log4js 的依赖项包含在内,因此您无需自己包含它。

配置

  • type - "dateFile"
  • filename - string - 您要将日志写入的文件路径。
  • pattern - string (可选, 默认 .yyyy-MM-dd) - 用于确定何时滚动日志的模式。
  • layout - (可选, 默认 basic 布局) - 参见布局

任何其他配置参数都将传递给 underlyingstreamroller实现(另请参见 node.js 核心文件流):

  • encoding - string (默认 "utf-8")
  • mode- integer (默认 0o644 - node.js file modes)
  • flags - string (默认 'a')
  • compress - boolean (默认 false) - 在滚动过程中压缩备份文件(备份文件的扩展名为.gz
  • alwaysIncludePattern - boolean (默认 false) - 在当前日志文件和备份的名称中包括该模式。
  • daysToKeep - integer (默认 0) - 如果此值大于零,则日志滚动期间将删除早于该天数的文件。
  • keepFileExt - boolean (默认 false) - 旋转日志文件时保留文件扩展名 (file.log 变为 file.2017-05-30.log 而不是 file.log.2017-05-30).

pattern用于确定何时重命名当前日志文件并创建新的日志文件。 例如,文件名为cheese.log,默认模式为.yyyy-mm-dd - 启动时,将创建并写入名为cheese.log的文件,直到午夜后的下一次写入。发生这种情况时,cheese.log将重命名为cheese.log.2017-04-30,并创建一个新的cheese.log文件。AppMnter 使用date-format库来解析pattern,并且可以使用任何有效格式。还要注意,没有定时器控制日志滚动 - 模式中的更改是在每次日志写入时确定的。如果没有发生写操作,则不会发生日志滚动。如果应用程序很少记录日志,则可能导致在特定时间段内没有写入日志文件。

注意,从 Log4JS 的 4.x 版本开始,文件 appender 可以为file appender选择任何选项。所以你可以按日期和大小滚动文件。

示例(默认每日日志滚动)

log4js.configure({
  appenders: {
    everything: { type: "dateFile", filename: "all-the-logs.log" }
  },
  categories: {
    default: { appenders: ["everything"], level: "debug" }
  }
});

此示例将导致每天滚动文件。初始文件为all-the-logs.log,每日备份为all-the-logs.log.2017-04-30等。

每小时滚动日志(和压缩备份)的示例

log4js.configure({
  appenders: {
    everything: {
      type: "dateFile",
      filename: "all-the-logs.log",
      pattern: ".yyyy-MM-dd-hh",
      compress: true
    }
  },
  categories: {
    default: { appenders: ["everything"], level: "debug" }
  }
});

这将生成一个当前日志文件(all-the-logs.log)。每隔一小时,此文件将被压缩并重命名为all-the-logs.log.2017-04-30-08.gz并创建一个新的all-the-logs.log

results matching ""

    No results matching ""