Nodejs线上日志部署
Nodejs线上日志部署
Nodejs 被越来越多的使用到线上系统中,但线上系统没有日志怎么行呢。
一、forever记录日志
我的线上系统使用forever来启动服务,最开始就直接使用了forever来记录
forever start -a -l ./logs/forever.log
-a 表示追加日志文件
-l 指定日志文件
-s 忽略console.log输出的日志记录(使用log4j时要用这个)
最开始还挺好的,所有日志都能记录下来,但是既然是线上环境,日志比较多,跑着跑着就出问题了。
forever.log文件变得越来越大,在我的系统里直接占了3GB的内存,而且全在内存里面,然后服务器就报警了。
然后尝试对forever.log文件进行切割,结果这SB玩意更本没法切割,具体问题:
1.对forever.log 重命名 forever.log.bak 然后新建forever.log,结果日志仍然往forever.log.bak里写,内存一点也没减少
2.直接删除forever.log ,forever不会新建forever.log,占用的内存也一直不释放
似乎是forever一直使用着文件句柄根本不释放就往里面写,根本没法做日志切割。
二、log4j记录日志
log4j是nodejs的一个log日志包,具体使用方法就不说了,只说怎么配置和分割日志
1 {2 "appenders": [3 { "type" : "console" },4 {5 "type": "dateFile",6 "filename": "logs/access.log",7 "pattern": "-yyyy-MM-dd",8 "category" : "normal",9 "level" : "LOG" 10 }, 11 { 12 "type": "file", 13 "filename": "logs/error.log", 14 "maxLogSize": 2097152, 15 "backup": 10, 16 "category": "error" 17 }, 18 { 19 "type": "dateFile", 20 "filename": "logs/record.log", 21 "pattern": "-yyyy-MM-dd", 22 "category": "record" 23 } 24 ], 25 "replaceConsole" : true, 26 "levels": { 27 "error": "error", 28 "record" : "trace" 39 } 30 }
Log4j的type:
- console 往控制台输出
- file 文件日志 maxLogSize 表示当文件超过这个值时切换文件 backup:n 会循环使用 error[1,n].log 的文件名
- dateFile 使用这个就会按天切割日志,按天生成文件名 access.log-2014-12-14
问题:
- 日志文件名和内容会相差一天 access.log-12-14 的文件里其实记录的是12-15 的日志文件,这个暂时还没有找到解决办法
换了log4j之后会自动切割日志,按天进行保存,内存就一直没暴增了;内存不满就没报警,没了报警整个世界都清净了。
Nodejs线上日志部署相关推荐
- rsync实现负载均衡集群文件同步,搭建线上测试部署环境
此次测试使用三台服务器,CentOS7(1511)版本: 192.168.254.1 web服务器+线上测试环境+源站 192.168.254.2 web服务器 192.168.254.3 we ...
- Linux 截取线上日志
按日期截取线上日志命令 (1)首先,需清楚日志输出的时间日期格式,具体命令如下: sed -n '/6-5 00:00:00/,/6-5 16:30:31/'p catalina.log > t ...
- 微信 日志服务器 并发大,微信高性能线上日志系统xlog剖析
微信高性能线上日志系统xlog剖析 做移动开发的同学经常会遇到一个头疼的问题,就是当用户反馈一些问题,又比较冷僻难以复现的时候(不是Crash),常常就会陷入一筹莫展的境地.因此,很多人就研发了相关的 ...
- linux系统中怎么截取某一天的日志,Linux系统如何截取线上日志
1.按香港云主机日期截取线上日志命令 (1)首先,需清楚日志输出的时间日期格式,具体命令如下: sed -n '/6-5 00:00:00/,/6-5 16:30:31/'p catalina.log ...
- 线上环境部署MongoDB的官方建议
原始出处:http://john88wang.blog.51cto.com/2165294/1386755 本文主要内容来自MongoDB官方文档http://docs.mongodb.org/man ...
- 快速定位NodeJs线上问题 - 之火焰图篇
0x01 背景 前段时间,公司监控群内报警,某个nodeJs项目 CPU 被打满,运维大哥快速重启解决,由于现场没有保留没定位到具体问题.2周后同样的报警又出来了,只能再次祭出重启大法,按照预期果然好 ...
- 线上日志集中化可视化管理:ELK
本文来自网易云社区 作者:王贝 为什么推荐ELK: 当线上服务器出了问题,我们要做的最重要的事情是什么?当需要实时监控跟踪服务器的健康情况,我们又要拿什么去分析?大家一定会说,去看日志,去分析日志.是 ...
- 线上日志分析与其他一些脚本
对一些线上常用的脚本进行了一下总结和说明,免得以后忘记了~ 一·线上发布API集群的代码脚本: #!/bin/bash #Author CCChost=' 10.44.22.113 10.44.22. ...
- OpenFalcon线上初步部署
近期,为保障线上商城9月大促,准备在原有的监控系统基础上,再部署OpenFalcon监控系统,在保障监控可靠性的同时,为后期切换到OpenFalcon监控做准备. 目前正在使用的监控系统为内部开发,目 ...
最新文章
- python为什么这么火 知乎-没想到吧!Google 排名第一的编程语言,为什么会这么火?...
- elasticsearch 6.x.x 获取客户端方法
- 談JS面向對象【靜態與非靜態類】
- 吃了一辈子大米,你还在相信水稻种水里是因为喜欢水?
- 活动安排(信息学奥赛一本通-T1422)
- 全网首发:以字型为例,一维表示的二维数组矩阵,以易理解的方式旋转90、-90
- 大战设计模式【10】—— 外观模式
- Oracle 客户端下载
- Springboot毕设项目公共机房的值班管理系统wyz7b(java+VUE+Mybatis+Maven+Mysql)
- windows10如何查看硬盘序列号
- BZOJ2339[HNOI2011]卡农——递推+组合数
- 神经网络权重是什么意思,神经网络权值和阈值
- 红与黑 DFS(JAVA解法)
- git由ssh改为http后,HTTP Basic: Access denied无法同步问题解决
- 北京信息科技大学计算机录取名单,北京信息科技大学2021年硕士研究生拟录取名单公示...
- python之爬虫神器selenium:猫眼电影榜单并进行数据可视化
- SuperRecovery超级硬盘数据恢复软件
- 2014 计算机会议,2014计算机学科国际会议排名.doc
- 网站空间和域名的关系和区别
- 大功率信号发生器原理是什么,安泰功率放大器型号推荐!
热门文章
- 自制 QQ游戏 连连看 外挂 ~~
- 一起学习Windows Phone7开发(十八. Windows Phone7 Toolkit)
- php生成随机密码的几种方法
- 关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
- PyOpenGL之3D界面详解(三)
- 【AI 顶会】NIPS2019接收论文完整列表
- 【今日CV 计算机视觉论文速览 第126期】Thu, 6 Jun 2019
- media player的显示模式 winform
- 1218 图片对齐模式
- 编辑器hbuilderx的下载与安装 0907