摘要:Node.js的日志默认打印到控制台,为数据收集和问题调查带来不便。通过log4js可以实现把日志打印到文件、自定义日志格式等功能,便于数据收集和整理。希望阅读本篇文章以后大家有所收获,帮助大家对Node.js的理解更加深入。
Node.js的日志默认打印到控制台,为数据收集和问题调查带来不便。通过log4js可以实现把日志打印到文件、自定义日志格式等功能,便于数据收集和整理。
1. [backcolor=transparent]var[backcolor=transparent] log4js [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]require[backcolor=transparent]([backcolor=transparent]'log4js'[backcolor=transparent]);
2. [backcolor=transparent]log4js[backcolor=transparent].[backcolor=transparent]configure[backcolor=transparent]({
3. [backcolor=transparent] appenders[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent][
4. [backcolor=transparent] [backcolor=transparent]{[backcolor=transparent]
5. [backcolor=transparent] type[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]'file'[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]//文件输出
6. [backcolor=transparent] filename[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]'logs/access.log'[backcolor=transparent],[backcolor=transparent]
7. [backcolor=transparent] maxLogSize[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]1024[backcolor=transparent],
8. [backcolor=transparent] backups[backcolor=transparent]:[backcolor=transparent]3[backcolor=transparent],
9. [backcolor=transparent] category[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]'normal'[backcolor=transparent]
10. [backcolor=transparent] [backcolor=transparent]}[backcolor=transparent]
11. [backcolor=transparent] [backcolor=transparent]]
12. [backcolor=transparent]});
13. [backcolor=transparent]var[backcolor=transparent] logger [backcolor=transparent]=[backcolor=transparent] log4js[backcolor=transparent].[backcolor=transparent]getLogger[backcolor=transparent]([backcolor=transparent]'normal'[backcolor=transparent]);
14. [backcolor=transparent]logger[backcolor=transparent].[backcolor=transparent]setLevel[backcolor=transparent]([backcolor=transparent]'INFO'[backcolor=transparent]);
15. [backcolor=transparent]logger[backcolor=transparent].[backcolor=transparent]info[backcolor=transparent]([backcolor=transparent]"this is a info msg"[backcolor=transparent]);
16. [backcolor=transparent]logger[backcolor=transparent].[backcolor=transparent]error[backcolor=transparent]([backcolor=transparent]"this is a err msg"[backcolor=transparent]);
日志格式
通过log4js实现日志数据存储为文本文件格式后,日志在文件中显示为以下格式:
1. [backcolor=transparent][[backcolor=transparent]2016[backcolor=transparent]-[backcolor=transparent]02[backcolor=transparent]-[backcolor=transparent]24[backcolor=transparent] [backcolor=transparent]17[backcolor=transparent]:[backcolor=transparent]42[backcolor=transparent]:[backcolor=transparent]38.946[backcolor=transparent]][backcolor=transparent] [backcolor=transparent][[backcolor=transparent]INFO[backcolor=transparent]][backcolor=transparent] normal [backcolor=transparent]-[backcolor=transparent] [backcolor=transparent]this[backcolor=transparent] [backcolor=transparent]is[backcolor=transparent] a info msg
2. [backcolor=transparent][[backcolor=transparent]2016[backcolor=transparent]-[backcolor=transparent]02[backcolor=transparent]-[backcolor=transparent]24[backcolor=transparent] [backcolor=transparent]17[backcolor=transparent]:[backcolor=transparent]42[backcolor=transparent]:[backcolor=transparent]38.951[backcolor=transparent]][backcolor=transparent] [backcolor=transparent][[backcolor=transparent]ERROR[backcolor=transparent]][backcolor=transparent] normal [backcolor=transparent]-[backcolor=transparent] [backcolor=transparent]this[backcolor=transparent] [backcolor=transparent]is[backcolor=transparent] a err msg
log4js分为6个输出级别,从低到高分别为trace、debug、info、warn、error、fatal。
通过Logtail收集Node.js日志
配置Logtail收集Python日志的详细操作步骤请参考快速入门和apache日志,根据您的网络部署和实际情况选择对应配置。
在生成正则式的部分,由于自动生成的正则式只参考了日志样例,无法覆盖所有的日志情况,所以需要用户在自动生成之后做一些微调。您可以参考以下Node.js日志示例,为您的日志撰写正确、全面的正则表达式。
[backcolor=transparent]常见的Node.js日志及其正则表达式:
·
Node.js日志示例1
日志示例:
[backcolor=transparent][[backcolor=transparent]2016[backcolor=transparent]-[backcolor=transparent]02[backcolor=transparent]-[backcolor=transparent]24[backcolor=transparent] [backcolor=transparent]17[backcolor=transparent]:[backcolor=transparent]42[backcolor=transparent]:[backcolor=transparent]38.946[backcolor=transparent]][backcolor=transparent] [backcolor=transparent][[backcolor=transparent]INFO[backcolor=transparent]][backcolor=transparent] normal [backcolor=transparent]-[backcolor=transparent] [backcolor=transparent]this[backcolor=transparent][backcolor=transparent]is[backcolor=transparent] a info msg
·
正则表达式:
[backcolor=transparent]\[[backcolor=transparent]([^]]+)][backcolor=transparent]\s\[[backcolor=transparent]([^[backcolor=transparent]\][backcolor=transparent]]+)][backcolor=transparent]\s[backcolor=transparent]([backcolor=transparent]\w[backcolor=transparent]+)[backcolor=transparent]\s[backcolor=transparent]-(.*)
·
提取字段:
time、level、loggerName和message。
Node.js日志示例2:
·
日志示例:
[backcolor=transparent][[backcolor=transparent]2016[backcolor=transparent]-[backcolor=transparent]01[backcolor=transparent]-[backcolor=transparent]31[backcolor=transparent] [backcolor=transparent]12[backcolor=transparent]:[backcolor=transparent]02[backcolor=transparent]:[backcolor=transparent]25.844[backcolor=transparent]][backcolor=transparent] [backcolor=transparent][[backcolor=transparent]INFO[backcolor=transparent]][backcolor=transparent] access [backcolor=transparent]-[backcolor=transparent] [backcolor=transparent]42.120[backcolor=transparent].[backcolor=transparent]73.203[backcolor=transparent] [backcolor=transparent]-[backcolor=transparent] [backcolor=transparent]-[backcolor=transparent] [backcolor=transparent]"GET /user/projects/ali_sls_log?ignoreError=true HTTP/1.1"[backcolor=transparent] [backcolor=transparent]304[backcolor=transparent] [backcolor=transparent]-[backcolor=transparent] [backcolor=transparent]"//
1. [backcolor=transparent]aliyun.com/"[backcolor=transparent] [backcolor=transparent]"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36"
·
正则表达式:
[backcolor=transparent]\[[backcolor=transparent]([^]]+)][backcolor=transparent]\s\[[backcolor=transparent]([backcolor=transparent]\w[backcolor=transparent]+)][backcolor=transparent]\s[backcolor=transparent]([backcolor=transparent]\w[backcolor=transparent]+)[backcolor=transparent]\s[backcolor=transparent]-[backcolor=transparent]\s[backcolor=transparent]([backcolor=transparent]\S[backcolor=transparent]+)[backcolor=transparent]\s[backcolor=transparent]-[backcolor=transparent]\s[backcolor=transparent]-[backcolor=transparent]\s[backcolor=transparent]"([^"[backcolor=transparent]]+)[backcolor=transparent]"\s(\d+)[^"[backcolor=transparent]]+([backcolor=transparent]"[^"[backcolor=transparent]]+)[backcolor=transparent]"\s"[backcolor=transparent]([^[backcolor=transparent]"]+).*
·
提取字段:
time、level、loggerName、ip、 request、status、referer和user_agent。
本文由职坐标整理发布,更多相关知识,请关注职坐标WEB前端Node.js频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号