npm 包 log4js-aliyun 使用教程

阅读时长 8 分钟读完

介绍

log4js-aliyun 是一个基于阿里云日志服务(Log Service)的 Node.js 日志库,它支持输出日志到控制台、文件、Log Service 等多个目的地,并且可以通过配置灵活地控制日志的输出格式、级别等选项。使用 log4js-aliyun 可以让 Node.js 应用更好地管理和记录日志,方便运维和后期故障排查。

安装

在终端中输入以下命令进行安装:

基本用法

以下是 log4js-aliyun 的基本用法示例。首先,我们需要引入包和创建配置:

-- -------------------- ---- -------
----- ------------ - -------------------------

------------------------
  ---------- -
    -------- - ----- --------- --
    ----------- -
      ----- ---------------------------
      --------- ------------------
      -------- -----------------
      --------- ------------------
      ------------ -----------------------
      ---------------- ---------------------------
      ---------------- ---- - ----  -- ------------- ---- - ---- --
    -
  --
  ----------- -
    -------- - ---------- ----------- -------------- ------ ------ -
  -
---

上述代码中,我们配置了两种输出方式:控制台 (console) 和 Log Service (logService)。其中,log4js-aliyun-logservicelog4js-aliyun 提供的插件,用于将日志输出到阿里云日志服务。在使用该插件时,我们需要提供 Log Service 的相关信息,包括 endpoint(服务接入点)、project(项目名称)、logstore(日志库名称)、accessKeyId(访问密钥 ID)和 accessKeySecret(访问密钥密钥)。在默认的日志级别中,我们设置了输出 info 级别或以上的日志。

接下来,我们可以使用 log4js-aliyun.getLogger(category) 方法获取一个日志对象:

在上述代码中,我们使用 getLogger 方法创建了一个名为 example 的日志对象,然后使用 infowarnerror 等方法输出不同级别的日志。需要注意的是,log4js-aliyun 中的日志级别从低到高依次为 tracedebuginfowarnerrorfatal,可以通过配置文件或代码进行修改。

此时,我们可以运行程序并观察输出的日志:

进阶用法

除了基本用法中介绍的方法外,log4js-aliyun 还提供了以下进阶用法:

动态日志切换

log4js-aliyun 支持在运行时动态修改日志级别或禁用某个日志对象。例如:

通过 setLevel 方法可以修改特定日志对象的日志级别。需要注意的是,通过该方法修改的日志级别只会对当前日志对象有效,对其他日志对象无影响。此外,也可以将日志级别设置为 off,表示禁用该日志对象。

自定义日志格式

log4js-aliyun 默认会按照以下格式输出日志:

如果需要自定义日志格式,可以通过配置文件或代码进行修改。例如:

-- -------------------- ---- -------
------------------------
  ---------- -
    -------- - ----- ---------- ------- - ----- ------- - --  -- -- ----- -----------
    ----------- -
      ----- ---------------------------
      --------- ------------------
      -------- -----------------
      --------- ------------------
      ------------ -----------------------
      ---------------- ---------------------------
      ------- -
        ----- ----------
        -------- --------------- -------------- ---- ---- - -----  -- ---------- ---- -------- - ----
      -
    -
  --
  ----------- -
    -------- - ---------- ----------- -------------- ------ ------ -
  -
---

在上述代码中,我们通过 layout 选项配置了不同的日志格式。basic 布局只输出日志内容,其他信息(时间、级别、日志对象名称)均省略;pattern 布局则允许通过占位符自定义日志格式,如 %d 表示输出时间,%p 表示输出级别,%c 表示输出日志对象名称,%m 表示输出日志内容,%n 表示输出换行符。

日志切割和归档

log4js-aliyun 提供了两个插件 log4js-aliyun-filelog4js-aliyun-loghub,用于将日志按照时间和大小进行切割和归档。例如:

-- -------------------- ---- -------
------------------------
  ---------- -
    ----- -
      ----- ---------------------
      --------- ------------------
      -------- -------------
      --------- -----
      -------- --
      ----------- ---- - ----  -- ------------ ---- - ---- --
    --
    ------- -
      ----- -----------------------
      --------- ------------------
      -------- -----------------
      --------- ------------------
      ------------ -----------------------
      ---------------- ---------------------------
      ------ ------
      ------------- -----
      ---------------- ---- - ---- - -  -- ------------- ---- - ---- --
    -
  --
  ----------- -
    -------- - ---------- ----------- ------- ---------- ------ ------ -
  -
---

在上述代码中,我们使用 log4js-aliyun-file 插件将日志文件按日期进行切割,每天生成一个新的日志文件(pattern: 'yyyy-MM-dd'),并保留最近的三个日志文件(backups: 3),同时启用压缩(compress: true)。使用 log4js-aliyun-loghub 插件将日志输出到阿里云日志服务,同时将日志缓存到本地,每隔一定时间(delay: 30000)或日志条数(sendInterval: 1000)批量上传到 Log Service。可以通过 maxBufferLength 选项调整本地日志缓存区大小。

总结

log4js-aliyun 是一个功能强大的 Node.js 日志库,它可以帮助我们更好地记录和管理应用程序日志,方便后期的运维和故障排查。本文介绍了 log4js-aliyun 的基本用法和几个进阶特性,包括动态日志切换、自定义日志格式、日志切割和归档等。希望本文能够对读者学习和使用 log4js-aliyun 有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056ea181e8991b448e7686

纠错
反馈