当前位置: 首页 > news >正文

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

 



转载于:https://www.cnblogs.com/lydialee/p/8336662.html

相关文章:

  • npx命令介绍
  • 一个Linux青蛙的痛苦挣扎……
  • StackExchange.Redis使用配置
  • CentOS经常使用文件操作命令[百度博客搬家]
  • telegraf+influxdb+grafana开源监控架构
  • Linux日常运维--5
  • 倒序切片
  • Codeforces D - The Child and Zoo
  • struct net_device网络设备结构体详解
  • Python操作MySQL数据库的三种方法
  • 如何下载腾讯视频的视频转为MP4常用格式视频
  • FreeBSD-musb_otg文件详解
  • centos7 安装wps 后 演示无法启动
  • NSString属性什么时候用copy,什么时候用strong?
  • 使用Visual Studio Code对Node.js进行断点调试
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 4. 路由到控制器 - Laravel从零开始教程
  • CentOS7 安装JDK
  • exif信息对照
  • k8s 面向应用开发者的基础命令
  • Linux CTF 逆向入门
  • Odoo domain写法及运用
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 分享几个不错的工具
  • 你真的知道 == 和 equals 的区别吗?
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 正则学习笔记
  • 阿里云ACE认证学习知识点梳理
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • #include<初见C语言之指针(5)>
  • (6)设计一个TimeMap
  • (ros//EnvironmentVariables)ros环境变量
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (四)Android布局类型(线性布局LinearLayout)
  • (转)iOS字体
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • (转)详解PHP处理密码的几种方式
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • ./configure,make,make install的作用(转)
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET 读取 JSON格式的数据
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • @WebService和@WebMethod注解的用法
  • @在php中起什么作用?
  • [C++]类和对象【上篇】
  • [C++]拼图游戏
  • [CareerCup] 2.1 Remove Duplicates from Unsorted List 移除无序链表中的重复项
  • [EULAR文摘] 利用蛋白组学技术开发一项蛋白评分用于预测TNFi疗效