npm 包 bunyan-rotating-file-stream 使用教程

介绍

Bunyan-rotating-file-stream 是一个基于 bunyan 的轮转文件日志记录工具,可以用于在 Node.js 应用程序中记录日志,并覆盖基本的轮转和日志大小限制。通过其轮转和大小限制功能,它可以轻松地管理日志文件的大小和数量,避免占用磁盘空间过多,且日志文件呈一个被切分并按时间归档的格式。

安装

本指南假定您已经安装了 Node.js 和 npm,您可以使用以下命令安装 bunyan-rotating-file-stream:

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

示例代码

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

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

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

在上面的示例代码中,我们创建了一个日志记录器,并将其配置为使用 bunyan-rotating-file-stream。其中,我们将 logs 放在 /var/log/myapp.log 中,通过period定义轮转间隔、totalFiles设定保留的历史轮转日志文件数量、threshold定义日志文件超过多少大小时开始轮转、totalSize设定保留的轮转日志文件总大小。

使用指南

使用 bunyan-rotating-file-stream 实现日志轮转是很简单的: 只需在创建 Bunyan 记录器时,包装一个 RotatingFileStream,并将其添加到streams数组。完整的Bunyan创建方法如下面示例代码。

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

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

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

在上面的示例中,我们使用bunyan.createLogger()方法创建一个日志记录器,并使用 process.stdout 将log输出到控制台。 我们还注意到,在记录器上,我们添加了一个新的传输流,它会将日志输出到一个轮转的写入流上,这个流会在日志大小超过10m时轮转,并覆盖原日志,一共保留4个文件,每个文件保留100m大小,使用gzip压缩归档日志文件,日志文件名自动包含时刻信息,表明当前日志是第几个轮转文件。

其他参数选项

在上面的示例中,我们使用了以下参数:

参数 说明
path 日志文件的路径,可以绝对路径,也可以相对路径
period 日志文件轮替周期,可以是毫秒,也可以是durants,比如'1d','2h','30m'等
totalFiles 备份日志的数量。当日志文件超出数量时,旧文件将被删除,能够控制日志文件所占空间的大小。默认情况下,只会保留一个备份。
rotateExisting 为防止程序被提前杀掉而没有机会写完文件,以及程序重启后的空日志文件,可以设置此项为 true,这样启动时会先将日志文件更名为当前时间打标记(-201704102224)的日志文件;如果是 false,则启动时直接为当前时间再新建文件。
threshold 日志文件的大小超出该值时,会轮转日志文件并生成新的日志文件,比如'1k','10m','100g'
totalSize 限制日志文件总大小。比如'1k','10m','100g'
gzip 备份日志设置是否压缩。默认为 false

总结

bunyan-rotating-file-stream 是一个很方便的日志文件轮转库,支持多种配置项,使用简单方便,可以后台自动轮转日志文件,并按时间归档,可以确保日志记录的稳定性和持久性,并在大量日志产生时,避免占用文件过多磁盘空间。它可以很容易地在 Node.js 应用程序中使用,通过它的配置选项,还可以更加细致地管理日志。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/107311


猜你喜欢

  • npm 包 fuse-email 使用教程

    在现代的 Web 开发环境中,npm 已经成为前端开发者必不可少的工具。npm 包可以帮你管理你的项目依赖,并提供各种实用工具,使你的开发过程更为便捷。在这篇文章中,我们将介绍一个非常实用的 npm ...

    5 年前
  • npm 包 brobbot-slack-instance 使用教程

    在前端开发中,有很多工具和库可以帮助我们更加高效地完成工作,其中 npm 是一个非常重要的工具之一。在本篇文章中,我们将会介绍一个基于 npm 的插件:brobbot-slack-instance。

    5 年前
  • npm 包 brobbot-instance 使用教程

    在开发前端项目的过程中,我们经常需要使用大量的第三方库来帮助我们完成各种各样的功能,npm 是一个非常不错的管理这些第三方库的工具。而 brobbot-instance 则是一个非常有用的 npm 包...

    5 年前
  • npm包 @types/xmpp__jid 使用教程

    前言 随着互联网的不断发展,前端技术也越来越复杂和多样化。而npm是前端工具中最为热门的之一,它提供了一个方便的途径来管理和使用JavaScript库、插件和框架。

    5 年前
  • npm 包 @types/node-xmpp-core 使用教程

    Node.js 是一个非常流行的 JavaScript 运行环境,我们可以用它来开发服务器、工具、脚本等等。而 XMPP 则是一种流行的实时通信协议,可以用于构建聊天应用、即时通讯应用等等。

    5 年前
  • NPM包 @xmpp/tcp 使用教程

    NPM包 @xmpp/tcp 是一款用于XMPP(即 Jabber 协议)的JavaScript库。 它提供了与XMPP服务器通信的基本功能,可以作为构建更复杂XMPP客户端或服务器的基础。

    5 年前
  • NPM包IRI使用教程

    简介 IRI是一个JavaScript工具库,可以帮助前端开发人员在处理URL的时候更加简单和方便。通过IRI,开发人员可以轻松地快速解析和操作URL,从而提高代码的可读性和可维护性。

    5 年前
  • npm 包 sasl-scram-sha-1 使用教程

    前言 在前端开发中,我们经常需要使用第三方库或插件来辅助我们完成一些任务。而在 npm 上,有很多非常优秀的开源库可以选择。其中,sasl-scram-sha-1 是一个用于在客户端和服务端之间进行双...

    5 年前
  • npm 包 sasl-plain 使用教程

    简介 sasl-plain 是一款用于授权认证的 npm 包,它提供基于 SASL Plain 机制的身份验证解决方案。 SASL 是 Simple Authentication and Securi...

    5 年前
  • npm 包 sasl-anonymous 使用教程

    什么是 SASL SASL(Simple Authentication and Security Layer)是一种用于在计算机网络中进行身份验证和安全通信的框架。

    5 年前
  • npm 包 @xmpp/time 使用教程

    本文将为大家介绍 npm 包 @xmpp/time 的使用教程,包括安装和基本使用方法。该包通常应用于 xmpp 客户端中用于时间同步的功能,是一个非常实用的 npm 库。

    5 年前
  • npm 包 xmpp.js 使用教程

    介绍 xmpp.js 是一个基于 XMPP 协议的 JavaScript 库,用于实现实时通信和聊天应用程序。它可以运行在浏览器以及 Node.js 环境中。 本文将介绍 xmpp.js 的使用方法,...

    5 年前
  • npm 包 @xmpp/sasl-scram-sha-1 使用教程

    在前端开发中,经常需要使用到 XMPP 通信协议。而在使用 XMPP 进行身份验证时,就需要用到 SASL 和 SCRAM-SHA-1 算法。这时,我们可以通过安装 @xmpp/sasl-scram-...

    5 年前
  • npm 包 @xmpp/sasl-plain 使用教程

    在前端开发中,经常需要使用一些 npm 包来简化开发流程。在本文中,我们将深入介绍一个名为 @xmpp/sasl-plain 的 npm 包,这是一个用于 XMPP 协议认证的简单机制的实现。

    5 年前
  • npm 包 @xmpp/sasl-anonymous 使用教程

    在现代开发中,使用 npm 包已经成为了一种常规的选择。npm 包可以让我们更快速地构建我们的应用程序而不必从头开始编写代码,这为前端开发者提供了很大的便利。本文将介绍一个 npm 包 @xmpp/s...

    5 年前
  • NPM包@xmpp/sasl 使用教程

    前言 NPM包@xmpp/sasl是一款基于XMPP协议的安全层认证协议工具,它是一款轻量级、高效的认证工具。本篇文章主要介绍如何使用npm包@xmpp/sasl,并针对该工具进行深度讲解,帮助读者理...

    5 年前
  • npm 包 @xmpp/resource-binding 使用教程

    前言 在现代化的 Web 应用程序中,通常使用 XMPP(即 扩展消息和存在协议)来实现实时通信。XMPP 已成为 WebRTC、聊天应用程序和其他实时网络应用程序的首选协议。

    5 年前
  • npm 包 @xmpp/reconnect 使用教程

    前言 @xmpp/reconnect 是一款 Twitter 的推特机器人,用于自动转推 Twitter 上的新闻、图片、视频等内容。@xmpp/reconnect 采用 JavaScript 编写,...

    5 年前
  • npm 包 @xmpp/middleware 使用教程

    简介 @xmpp/middleware 是一个 Node.js 的 XMPP 中间件框架,可以快速地在 XMPP 服务器上实现自定义的功能。其核心代码相当精简,使用者可以方便地根据自己的需求进行二次开...

    5 年前
  • npm 包 @xmpp/iq 使用教程

    1. 什么是 @xmpp/iq @xmpp/iq 是一个用于处理 XMPP 协议中 IQ (Info/Query) 消息的 Node.js 模块。IQ 消息是 XMPP 协议中最复杂的一种消息类型,它...

    5 年前

相关推荐

    暂无文章