前言:
现在大家对“压缩日志命令”大约比较关怀,咱们都需要学习一些“压缩日志命令”的相关知识。那么小编同时在网上网罗了一些关于“压缩日志命令””的相关文章,希望朋友们能喜欢,小伙伴们一起来学习一下吧!pm2-logrotate 简介
pm2-logrotate可以理解为是一个pm2的插件,它扩充了pm2本身没有功能:日志管理,所以它的运行需要依靠pm2,想用它必须先安装pm2才可以。
作用
pm2本身没有日志分割功能,日志只能存在一个文件中,时间久了日志文件非常大,查看起来很麻烦,并且一些日志过一段时间后可能就没用了,依然留着对空间也是浪费,有了该插件,可以将日志文件根据我们的设定进行分割,比如按天进行分割,把每天的日志文件分别存储,这样查看起来是不是比较方便?并且还可以设置日志文件的最大总数,比如我们设置日志文件最多100个,那么当日志文件超过100个后会自动将最早的日志文件删除掉,我们也不用再花时间去整理日志文件了
使用
命令设置具体的参数,支持的参数有:
Compress:是否通过gzip压缩日志max_size:单个日志文件的大小,比如上图中设置为1K(这个其实太小了,实际文件大小并不会严格分为1K)retain:保留的日志文件个数,比如设置为10,那么在日志文件达到10个后会将最早的日志文件删除掉dateFormat:日志文件名中的日期格式,默认是YYYY-MM-DD_HH-mm-ss,注意是设置的日志名+这个格式,如设置的日志名为abc.log,那就会生成abc_YYYY-MM-DD_HH-mm-ss.log名字的日志文件rotateModule:把pm2本身的日志也进行分割workerInterval:设置启动几个工作进程监控日志尺寸,最小为1rotateInterval:设置强制分割,默认值是0 0 * * *,意思是每天晚上0点分割常见操作
pm2 conf pm2-logrotate
看下项目里面会如何分割?
我们来看一个next.js的项目,pm2.config.js文件如此配置
module.exports = { apps: [ { name: 'next', script: 'dist/server/index.js', instances: +process.env.CODE_SERVER_WORKERS || 4, // 最多四个实例,在matrix上,无法获取容器实例规格,设置max,实例数会取宿主物理机cpu数量 cwd: './', watch: false, exec_mode: 'cluster', log_date_format: 'YYYY-MM-DD HH:mm:ss SSS', env: { "NODE_ENV": "production", "CODE_SERVER_ENV": "production" }, error_file: '/home/work/log/pm2/app-err.log', out_file: '/home/work/log/pm2/app-out.log', merge_logs: true } ]};
标签: #压缩日志命令 #日志压缩算法 操作系统