全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 更多
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 智能硬件
日志服务

Node.js日志

更新时间:2018-03-05 16:51:47

Node.js的日志默认打印到控制台,为数据收集和问题调查带来不便。通过log4js可以实现把日志打印到文件、自定义日志格式等功能,便于数据收集和整理。

  1. var log4js = require('log4js');
  2. log4js.configure({
  3. appenders: [
  4. {
  5. type: 'file', //文件输出
  6. filename: 'logs/access.log',
  7. maxLogSize: 1024,
  8. backups:3,
  9. category: 'normal'
  10. }
  11. ]
  12. });
  13. var logger = log4js.getLogger('normal');
  14. logger.setLevel('INFO');
  15. logger.info("this is a info msg");
  16. logger.error("this is a err msg");

日志格式

通过log4js实现日志数据存储为文本文件格式后,日志在文件中显示为以下格式:

  1. [2016-02-24 17:42:38.946] [INFO] normal - this is a info msg
  2. [2016-02-24 17:42:38.951] [ERROR] normal - this is a err msg

log4js分为6个输出级别,从低到高分别为trace、debug、info、warn、error、fatal。

通过Logtail收集Node.js日志

配置Logtail收集Node.js日志的详细操作步骤请参考快速入门apache日志,根据您的网络部署和实际情况选择对应配置。

在生成正则式的部分,由于自动生成的正则式只参考了日志样例,无法覆盖所有的日志情况,所以需要用户在自动生成之后做一些微调。您可以参考以下Node.js日志示例,为您的日志撰写正确、全面的正则表达式。

常见的Node.js日志及其正则表达式

  • Node.js日志示例1

    • 日志示例:

      1. [2016-02-24 17:42:38.946] [INFO] normal - this is a info msg
    • 正则表达式:

      1. \[([^]]+)]\s\[([^\]]+)]\s(\w+)\s-(.*)
    • 提取字段:

      timelevelloggerNamemessage

  • Node.js日志示例2:

    • 日志示例:

      1. [2016-01-31 12:02:25.844] [INFO] access - 42.120.73.203 - - "GET /user/projects/ali_sls_log?ignoreError=true HTTP/1.1" 304 - "http://
      2. aliyun.com/" "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"
    • 正则表达式:

      1. \[([^]]+)]\s\[(\w+)]\s(\w+)\s-\s(\S+)\s-\s-\s"([^"]+)"\s(\d+)[^"]+("[^"]+)"\s"([^"]+).*
    • 提取字段:

      timelevelloggerNameiprequeststatusrefereruser_agent

本文导读目录