• 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:

    1. console 往控制台输出
    2. file 文件日志 maxLogSize 表示当文件超过这个值时切换文件 backup:n 会循环使用 error[1,n].log 的文件名
    3. dateFile 使用这个就会按天切割日志,按天生成文件名 access.log-2014-12-14

    问题:

      日志文件名和内容会相差一天 access.log-2014-12-14 的文件里其实记录的是 2014-12-15 的日志文件,这个暂时还没有找到解决办法

    换了log4j之后会自动切割日志,按天进行保存,内存就一直没暴增了。

    内存不满就没报警,没了报警整个世界都清净了。

  • 相关阅读:
    LightOJ 1422 Halloween Costumes(区间dp)
    zoj 3537 Cake(区间dp)
    POJ 2955 Brackets(区间dp)
    HDU 1058 Humble Numbers(dp)
    uva 10934 Dropping water balloons(转载)
    树形dp
    Manacher算法求回文半径
    poj-1236.network of schools(强连通分量 + 图的入度出度)
    hdu-2255.奔小康赚大钱(最大权二分匹配)
    poj-2289.jamies contact groups(二分答案 + 二分多重匹配)
  • 原文地址:https://www.cnblogs.com/feng_013/p/4166179.html
Copyright © 2020-2023  润新知