zoukankan      html  css  js  c++  java
  • log4js日志配置问题

    http://blog.csdn.net/cdnight/article/details/50857268

    在做项目中,我们的node日志采用的是log4js框架,使用文件方式存储,但在后面的需求中增加了一项,需要将node日志服务接入ELK(Elasticsearch+logstash+kibana),运维需要匹配node 的日志文件。在这个过程中,熟悉了一下log4js的配置问题。

    type:file 会以文件方式存储,可以配合maxLogSize,backups,按照文件大小进行分割,如果文件log-2018-1-23.log超过maxLogSize设置的大小,则会将文件备份成log-2018-1-23.log.1,然后再创建log-2018-1-23.log,重新再写。而backups则用于设置分割的文件个数,最多滚动几个文件。


    1.1 filename配置
    a.filename是一个目录加上文件名,路径就是日志文件存储的路径.
    b.此路径可以是相对路径也可以绝对路径,当是相对路径时,是相对于工程根目录.
    c.无论是相对路径还是绝对路径,路径过程中的所有文件夹必须事先手动创建好,log4js不会自动创建,如路径不存在则会报错.
    d.最后的文件名就是输出文件的名字模版,真实的名字会一定的修改,
    d1:type:datefile 时会加上时间标签,如 [log-2015-01-24 , log-2015-01-25]
    d2:type:file时 如果文件过大,份文件后会增加一个编号标签. [log.1 log.2 log.3 ...]
    1.2 maxLogSize配置
    这个只在type:file模式有效.表示文件多大时才会创建下一个文件,单位是字节.实际设置时具体的值根据业务来定,但是不推荐大于100Mb.

    log4js.configure({
    appenders: [{
    type: 'console'
    },
    {
    type: 'file', //file就是采用文件格式存储
    filename: logFileName.replace(/\/g, '/'),
    maxLogSize: MAXLOGSIZE,
    backups: 4,
    category: loggerName
    }
    ],
    replaceConsole: false
    });

    按照日期生成文件:

            下面这个生成的文件名就是date-2015-01-24-14:24:12.log
            pattern精确到ss(秒)就是一秒一个文件,精确到mm(分)就是一分一个文件,一次类推:hh(小时),dd(天),MM(月),yyyy(年),yy(年后两位),注意大小写!

    {  
        "category":"log_date",  
        "type": "dateFile",  
        "filename": "./logs/log_date/date",  
        "alwaysIncludePattern": true,  
        "pattern": "-yyyy-MM-dd-hh:mm:ss.log"  
    }  



  • 相关阅读:
    Java 线程具有五中基本状态 ?
    可以直接调用 Thread 类的 run ()方法么?
    创建线程的三种方式的对比?
    FutureTask 是什么 ?
    什么是 CAS?
    如何让正在运行的线程暂停一段时间?
    什么是不可变对象(immutable object)?Java 中怎么 创建一个不可变对象?
    创建线程的有哪些方式?
    Semaphore 有什么作用 ?
    CopyOnWriteArrayList 可以用于什么应用场景?
  • 原文地址:https://www.cnblogs.com/lydialee/p/8336662.html
Copyright © 2011-2022 走看看