日志插件log4js的详细介绍和使用(超全)

3,421 阅读3分钟

log4js

log4js是一个流行的Node.js日志记录库,它允许你在你的Node.js应用程序中轻松地实现灵活、高效的日志记录。log4js提供了不同的日志级别,包括:trace、debug、info、warn和error。你可以根据需要设置这些级别,从而更好地了解你的应用程序运行状况。此外,log4js还提供了多个输出目标,包括控制台输出、文件输出和日志记录服务器等。

下面是log4js的一些常用参数和使用方法:

1. 参数配置

log4js可以通过JSON文件进行配置,例如:

{
  "appenders": {
    "console": { "type": "console" },
    "file": {
      "type": "file",
      "filename": "logs/app.log",
      "maxLogSize": 10485760,
      "backups": 3,
      "compress": true
    }
  },
  "categories": {
    "default": { "appenders": ["console", "file"], "level": "info" }
  }
}

这里我们定义了两个输出目标:console和file,分别用于输出到控制台和文件。其中,file的日志将写入到logs/app.log文件中,并且每个日志文件的大小不超过10MB,最多保存3个备份,并启用了压缩。categories则用于指定日志的级别和输出目标。

2. 使用方法

在Node.js应用程序中使用log4js非常简单,只需要安装log4js依赖,然后在代码中引入log4js库,并根据需要进行配置即可。

例如,我们可以通过以下方式在应用程序中使用log4js:

const log4js = require('log4js');

// 加载配置文件
log4js.configure('./log4js.json');

// 获取logger对象
const logger = log4js.getLogger();

// 记录日志
logger.trace('This is a trace message.');
logger.debug('This is a debug message.');
logger.info('This is an info message.');
logger.warn('This is a warning message.');
logger.error('This is an error message.');

在上面的代码中,我们首先通过log4js.configure方法加载配置文件,然后通过log4js.getLogger方法获取logger对象,最后使用logger对象记录日志。根据我们在配置文件中定义的categories,默认情况下,所有级别为info及以上的日志信息将同时输出到控制台和日志文件中。

除了在应用程序中直接使用log4js,我们还可以将其与其他Node.js框架(如Express和Koa)集成,以便更好地记录和管理应用程序的日志信息。

3. 以下是log4js配置文件中常见参数的详细说明:

  1. appenders: 指定日志输出目标,可以定义多个,每个输出目标都有自己的类型和参数配置。
    • type: 指定输出目标的类型,包括:console、file、dateFile、logLevelFilter、logFaces-UDP、logFaces-TCP、logFaces-HTTP、multiprocess、smtp、slack、hipchat等。
    • filename: 指定输出到文件时的文件名,可以是绝对路径或相对路径。
    • maxLogSize: 指定日志文件的最大大小,超过这个大小后将自动进行文件切割。默认为null,表示不限制文件大小。
    • backups: 指定保留的备份数量,当日志文件切割时会自动保存指定数量的备份文件。默认为5。
    • compress: 指定是否启用压缩,当日志文件进行切割时,可以将备份文件进行压缩以节省磁盘空间。默认为false。
    • layout: 指定输出格式化方式,可以是pattern、json等。
  1. categories: 指定日志级别和输出目标的对应关系,可以定义多个。
    • default: 指定默认的输出目标和日志级别。
    • appenders: 指定输出目标,可以是单个或多个,对应appenders中的输出目标名称。
    • level: 指定输出目标的日志级别,包括:trace、debug、info、warn、error、fatal等。
  1. levels: 指定全局日志级别,对于没有在categories中指定的输出目标,会使用该全局日志级别。
  2. pm2: 指定在pm2中的配置参数。
    • appenders: 指定pm2启动时使用的输出目标,可以定义多个。
    • outFile: 指定标准输出日志的文件路径。
    • errorFile: 指定错误输出日志的文件路径。

以上是常见的log4js配置参数,根据具体需求,也可以定义自己的配置参数。在使用log4js时,可以根据实际情况进行配置,以满足不同场景的需求。