在日常开发工作中,日志的正确记录和管理是非常重要的一环。针对 Node.js 应用的进程管理器 PM2,它提供了一些非常便捷的日志功能,如实时日志输出、切割日志、归档日志等。本文主要介绍 PM2 日志文件归档的玩法,帮助开发者更好地管理和清理日志。
什么是 PM2 日志文件归档
在 PM2 中,日志文件默认是以文本文件的形式存储在指定路径下的,可以通过 PM2 日志管理相关的命令来查看和切割日志。当日志文件过大时,我们往往需要将其归档以便更好地管理和清理。
PM2 的日志文件归档即将过期的日志文件自动压缩存档,并将存档文件以时间为命名规则进行存储。这样一来,可以方便地定期清理过期的日志文件,并能够更快地访问和读取历史记录。同时,PM2 也提供了一些相关的参数和配置方式,使得我们可以根据自己的需求来自定义归档的规则和存储位置。
PM2 日志文件归档的配置方式
要启用 PM2 日志文件归档功能,需要在启动 PM2 进程时添加相关的参数,下面介绍一下常用的参数配置方式。
参数1:--log-date-format
该参数指定日志中日期的格式。常用的格式有:
- YYYY-MM-DD:年-月-日
- YYYY-MM-DDTHH:mm:ss:年-月-日T小时:分钟:秒
- HH:mm:ss:小时:分钟:秒
可自定义,格式化之后的日期将自动加入日志文件名中。
参数2:--log-file-size
该参数指定单个日志文件的大小限制。当文件大小超出限制时,PM2 将会自动进行拆分操作,即切割日志。
该参数的取值包括:
- 数字:表示以字节为单位的文件大小,比如 10000000 表示 10MB。
- 文字+数字的形式:表示使用 GB(gigabyte)、MB(megabyte)、KB(kilobyte)等单位,比如 2GB 表示 2GB 文件大小限制。
参数3:--log-file-name
该参数指定日志文件名。它可以包含路径信息,并且可以使用自定义占位符。
常用的占位符有:
- :appName:应用名
- :date[fmt]:按照指定格式将当前日期转换为字符串,fmt 为格式化字符串。
比如可以将该参数配置为 ./logs/:appName-:date[YYYY-MM-DD].log
,表示每个应用都有对应的日志文件,并以年-月-日的格式命名。
参数4:--log-directory
该参数指定存储日志文件的路径。可以是相对路径或绝对路径。默认为空字符串,表示在当前目录下生成日志文件。
同时,PM2 还提供了一个更为高阶的配置方式,即使用 JSON 配置文件进行日志配置。详情可以参考官方文档:PM2 的 JSON 配置文件
PM2 日志文件归档的应用
下面提供一些 PM2 日志文件归档的实际应用示例。
示例1:按天归档,保留近30天日志记录
pm2 start app.js --name myapp --log-date-format 'YYYY-MM-DD' --log-file-size 50MB --log-file-name './logs/:appName-:date[YYYY-MM-DD].log' --log-directory './logs' --log-max-files 30
该示例中,我们通过 --log-date-format
参数将日志日期转换为年-月-日格式。--log-file-size
参数指定单个日志文件大小限制为 50MB,即当一个日志文件大小达到 50MB 时,PM2 将会自动切割,新生成一个日志文件。--log-file-name
参数指定日志文件名,该参数中使用了自定义占位符来保证文件名的唯一性和规范性。--log-directory
参数指定日志文件存储目录为 ./logs,该目录可以是相对路径或绝对路径。
这样一来,每当日期发生变化时,PM2 都会将过期的日志文件进行归档压缩,存储为 .log.YYYY-MM-DD 的形式,并以时间顺序排列。同时,PM2 日志文件归档功能能够保留近 30 天的日志记录,如果超出时间范围则自动删除。
示例2:按小时归档,归档文件存储在另一个目录下
pm2 start app.js --name myapp --log-date-format 'YYYY-MM-DDTHH' --log-file-size 50MB --log-file-name './logs/:appName-:date[YYYY-MM-DDTHH].log' --log-directory './logs' --log-rotate --log-gzip --log-max-size '20MB' --log-archive-directory './archives'
该示例与上一示例的区别在于,我们使用了更为详细的时间格式,即按小时进行归档。此外,我们使用了 --log-rotate
、--log-gzip
两个参数来开启轮换和压缩功能,以便对日志文件进行便捷的清理和管理。
此外,我们还使用了 --log-max-size
参数指定日志文件大小的最大限制为 20MB。这意味着,如果单个日志文件大小超过 20MB 时,PM2 将自动对其进行切割和压缩,并将生成的压缩文件存储在 --log-archive-directory
参数指定的目录下。
总结
通过 PM2 日志文件归档的应用,我们可以便捷地管理和清理 Node.js 应用的日志。具体来说,通过 PM2 的配置参数和相关设置,可以灵活地控制日志文件的格式、大小、存储位置和归档规则。在实际应用中,我们可以根据自己的需求来进行灵活的配置和调整,以便更好地管理和维护我们的应用。
以上就是 PM2 日志文件归档的玩法的详细介绍和应用示例。希望本文对大家有所帮助,能够提高 Node.js 应用的日志管理水平。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/652a31f47d4982a6ebc896bd