nodejs总结之日志模块log4js

  1 /**
  2  * npm install log4js
  3  * 源码及文档地址:https://github.com/nomiddlename/log4js-node
  4  */
  5 var log4js = require('log4js');
  6 
  7 /**
  8  * 第一种:
  9  * configure方法为配置log4js对象,内部有levels、appenders、categories三个属性
 10  * levels:
 11  *         配置日志的输出级别,共ALL<TRACE<DEBUG<INFO<WARN<ERROR<FATAL<MARK<OFF八个级别,default level is OFF
 12  *         只有大于等于日志配置级别的信息才能输出出来,可以通过category来有效的控制日志输出级别
 13  * appenders:
 14  *         配置文件的输出源,一般日志输出type共有console、file、dateFile三种
 15  *         console:普通的控制台输出
 16  *         file:输出到文件内,以文件名-文件大小-备份文件个数的形式rolling生成文件
 17  *         dateFile:输出到文件内,以pattern属性的时间格式,以时间的生成文件
 18  * replaceConsole:
 19  *         是否替换控制台输出,当代码出现console.log,表示以日志type=console的形式输出
 20  *                 
 21  */
 22 
 23 log4js.configure({
 24     levels: {
 25         'log_file' : 'info'
 26     },
 27     appenders : [
 28         {
 29             type : 'console',
 30             category: "console"
 31         },
 32         {
 33             type : 'stdout'
 34         },
 35         {
 36             type : 'file',
 37             filename: __dirname + '/logs/test.log',//文件目录,当目录文件或文件夹不存在时,会自动创建
 38             maxLogSize : 10,//文件最大存储空间,当文件内容超过文件存储空间会自动生成一个文件test.log.1的序列自增长的文件
 39             backups : 3,//default value = 5.当文件内容超过文件存储空间时,备份文件的数量
 40             //compress : true,//default false.是否以压缩的形式保存新文件,默认false。如果true,则新增的日志文件会保存在gz的压缩文件内,并且生成后将不被替换,false会被替换掉
 41             encoding : 'utf-8',//default "utf-8",文件的编码
 42             category : 'log_file'
 43         },
 44         {
 45             type: "dateFile",
 46             filename: __dirname + '/logs/dateFileTest',//您要写入日志文件的路径
 47             alwaysIncludePattern: true,//(默认为false) - 将模式包含在当前日志文件的名称以及备份中
 48             //compress : true,//(默认为false) - 在滚动期间压缩备份文件(备份文件将具有.gz扩展名)
 49             pattern: "-yyyy-MM-dd-hh.log",//(可选,默认为.yyyy-MM-dd) - 用于确定何时滚动日志的模式。格式:.yyyy-MM-dd-hh:mm:ss.log
 50             encoding : 'utf-8',//default "utf-8",文件的编码
 51             category:"log_date",
 52         }
 53     ],
 54     replaceConsole: true
 55 });
 56 
 57 /**
 58  * 第二种
 59  * appenders:
 60  *         一个JS对象,key为上面的category,value是一些其他属性值
 61  * categories:
 62  *         default表示log4js.getLogger()获取找不到对应的category时,使用default中的日志配置
 63  *         
 64  */
 65 /*
 66 log4js.configure(
 67           {
 68             appenders: {
 69               file: {
 70                   type : 'file',
 71                 filename: __dirname + '/logs/test.log',//文件目录,当目录文件或文件夹不存在时,会自动创建
 72                 maxLogSize : 10,//文件最大存储空间,当文件内容超过文件存储空间会自动生成一个文件test.log.1的序列自增长的文件
 73                 backups : 3,//当文件内容超过文件存储空间时,备份文件的数量
 74                 //compress : true,//是否以压缩的形式保存新文件,默认false。如果true,则新增的日志文件会保存在gz的压缩文件内,并且生成后将不被替换,false会被替换掉
 75                 encoding : 'utf-8',//default "utf-8",文件的编码
 76                 category : 'log_file'
 77                 numBackups: 5, // keep five backup files
 78                 compress: true, // compress the backups
 79                 encoding: 'utf-8',
 80               },
 81               dateFile: {
 82                 type: 'dateFile',
 83                 filename: 'more-important-things.log',
 84                 pattern: 'yyyy-MM-dd-hh',
 85                 compress: true
 86               },
 87               out: {
 88                 type: 'stdout'
 89               }
 90             },
 91             categories: {
 92               default: { appenders: ['file', 'dateFile', 'out'], level: 'trace' }
 93             }
 94           }
 95         );
 96 */
 97 var logger = log4js.getLogger('log_file');
 98 var logger1 = log4js.getLogger('log_date');
 99 
100 logger.info("this is a log4js test1111111111111!");
101 logger1.info("this is a log4js test1111111111111!");
102 console.log("test test!!");

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏磨磨谈

Ceph OSD从filestore 转换到 bluestore的方法

前段时间看到豪迈的公众号上提到了这个离线转换工具,最近看到群里有人问,找了下没什么相关文档,就自己写了一个,供参考

923
来自专栏Danny的专栏

【SSH快速进阶】——Hibernate自动建表

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

654
来自专栏黑白安全

内网提权中常用命令

C:\Users\thel3l> systeminfo | findstr /B /C:"OS Name" /C:"OS Version" OS Name: M...

592
来自专栏C/C++基础

Linux命令(25)——cp命令

cp命令主要用于复制文件或目录,可以将一个或多个源文件或者目录复制到指定的目的文件或目录,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现...

802
来自专栏深度学习与计算机视觉

Python 新建文件夹与复制文件夹内所有内容

在指定路径下新建一个文件夹: import os def newfile(path): path=path.strip() path=path....

1706
来自专栏林德熙的博客

Latex 去掉行号 latex引用多篇参考文献

尝试引用:\usepackage[numbers,sort&compress]{natbib}

561
来自专栏WindCoder

《Linux内核分析》之构造一个简单的Linux系统MenuOS 实验总结

在原来配置的基础上,make menuconfig选中如下选项重新配置Linux,使之携带调试信息

501
来自专栏乐沙弥的世界

OUI-18001:不支持操作系统'Windows Vista 版本6.1'

    对于Oracle 10g,Oracle已经不再提供支持以及下载服务,同时Oracle也未推出支持Windows 7上安装Oracle 10g clien...

542
来自专栏magicsoar

Nginx平滑升级源码分析

一、平滑升级步骤 1、重命名之前的sbin/nginx文件,将新的nginx文件放到sbin/目录下 #mv ./sbin/nginx ./sbin/nginx...

1977
来自专栏Java Edge

MySQL show语句

32710

扫码关注云+社区