• pm2日志管理pm2-logrotate介绍


    先来看两个问题

    问:pm2-logrotate是什么?

    答:pm2-logrotate可以理解为是一个pm2的插件,它扩充了pm2本身没有功能:日志管理,所以它的运行需要依靠pm2,想用它必须先安装pm2才可以。

    问:为什么有pm2-logrotate

    答:因为pm2本身没有日志分割功能,日志只能存在一个文件中,时间久了日志文件非常大,查看起来很麻烦,并且一些日志过一段时间后可能就没用了,依然留着对空间也是浪费,有了该插件,可以将日志文件根据我们的设定进行分割,比如按天进行分割,把每天的日志文件分别存储,这样查看起来是不是比较方便?并且还可以设置日志文件的最大总数,比如我们设置日志文件最多100个,那么当日志文件超过100个后会自动将最早的日志文件删除掉,我们也不用再花时间去整理日志文件了,是不是很省心?

    安装

    NPM官网地址:https://www.npmjs.com/package/pm2-logrotate

    安装:pm2 install pm2-logrotate(前提是已安装过pm2

    安装特定版本:pm2 install pm2-logrotate@2.2.0

    参数介绍

     

    安装完毕使用方法如上图:pm2 set pm2-logrotate:max_size 1K

    格式是:pm2 set pm2-logrotate:{paramName} {value}

    命令设置具体的参数,支持的参数有:

    l Compress:是否通过gzip压缩日志

    l max_size:单个日志文件的大小,比如上图中设置为1K(这个其实太小了,实际文件大小并不会严格分为1K

    l retain:保留的日志文件个数,比如设置为10,那么在日志文件达到10个后会将最早的日志文件删除掉

    l dateFormat:日志文件名中的日期格式,默认是YYYY-MM-DD_HH-mm-ss,注意是设置的日志名+这个格式,如设置的日志名为abc.log,那就会生成abc_YYYY-MM-DD_HH-mm-ss.log名字的日志文件

    l rotateModule:把pm2本身的日志也进行分割

    l workerInterval:设置启动几个工作进程监控日志尺寸,最小为1

    rotateInterval:设置强制分割,默认值是0 0 * * *,意思是每天晚上0点分割,这个足够了个人觉得

    设置完毕后可通过pm2 conf pm2-logrotate来查看详细的配置。

    存在问题

    我在使用过程中发现一个问题:只有当日志文件大小超过上限时都会把日志追加到最新的文件中,比如设置了日志文件名为app-out.log,日志文件大小为1M,那么在app-out.log文件没有超过1M时,即使第二天新建了日志文件app-out_yyyy-mm-dd_hh-mm-ss.log,但是依然会把日志追加到app-out.log中而非新建的日志文件中,更坑的是,在超过设定的大小后,它是把超出部分写到新的日志文件中,然后继续在app-out.log中追加- -,在官方文档中也没有发现对这个问题的说明。

    不过,值得高兴的是,万能的网友解决了这个问题!Github地址在这里,请开心享用。

  • 相关阅读:
    如何解决软键盘弹出引起的各种不适
    防反编译、混淆文件proguard.cfg与proguard-project.txt详解
    Android.mk添加第三方jar包
    Android Proguard.flags LOCAL_PROGUARD_FLAGS
    【Mood 21】要不要重复造轮子
    彻底解决INSTALL_FAILED_UPDATE_INCOMPATIBLE的安装错误
    【起航计划 037】2015 起航计划 Android APIDemo的魔鬼步伐 36 App->Service->Remote Service Binding AIDL实现不同进程间调用服务接口 kill 进程
    【起航计划ObjC 003】印第安老斑鸠ObjC的幻想 ---- ObjC经典问题
    缩短移动开发周期的ApiCloud
    LeAndroid招聘汇总
  • 原文地址:https://www.cnblogs.com/daner1257/p/10763888.html
Copyright © 2020-2023  润新知