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: ,
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"
}

最新文章

  1. 俄罗斯方块C#版
  2. Android -- 简单广播接收与发送(2)--动态注册广播接收器
  3. 可执行jar包的maven配置
  4. python 调用zabbix api接口实现主机的增删改查
  5. android 在一个scrollView里面嵌套一个需要滑动的控件(listView、gridView)
  6. 【转】 Xcode基本操作
  7. 2015 UESTC Winter Training #6【Regionals 2010 >> North America - Rocky Mountain】
  8. MultiByteToWideChar和WideCharToMultiByte用法详解, ANSI和UNICODE之间的转换
  9. win7系统中桌面图标显示不正常问题
  10. iframe的各项參数
  11. HPQC HP Quality Center windows 服务
  12. # openVPN+LDAP AD认证,组权限管理
  13. 【游戏开发】基于VS2017的OpenGL开发环境搭建
  14. java面向对象三大特性:封装、继承、多态
  15. HDU 1089 到1096 a+b的输入输出练习
  16. PHP 伪协议
  17. OAF_Oracle Application Framework基本知识点(概念)
  18. Atitit.ALT+TAB没反应车and 点击任务栏程序闪烁但是不能切换
  19. 17.Delete Methods-官方文档摘录
  20. tomcat结合httpd和nginx

热门文章

  1. [Typescript] Specify Exact Values with TypeScript’s Literal Types
  2. Hibernate4之session核心方法
  3. How to get service execuable path
  4. BestCoder #49 Untitled HDU 5339
  5. [IT学习]Python如何处理异常特殊字符
  6. hadoop第一个例子WordCount
  7. XMU 1617 刘备闯三国之汉中之战 【BFS+染色】
  8. aliyun 日志服务(Log Service,Log)是针对日志场景的一站式服务
  9. Android JNI MAC OS环境配置
  10. bzoj1090 [SCOI2003]字符串折叠——区间DP