当前位置: 首页 > 后端技术 > Node.js

nodejslog4js使用

时间:2023-04-03 17:56:07 Node.js

本文针对log4jsv4.3本文简单记录下使用log4js的技术要点。有些技术点没有用到,也没有写全,以后用到的时候再更新。首先对log4js的基本用法做一个大致的总结,使用configure()方法配置日志输出,使用getlogger()方法获取logger对象,然后使用logger对象打印各种级别的日志。比较复杂的是configure()方法中的配置对象appenders和categories。下面重点讲解这两个对象。安装npminstall--savelog4js日志级别levellog4js分为以下级别,级别的顺序也排列如下,logger只有大于或等于logger对象设置的级别的日志才会被打印。tracedebuginfowarnerrorfatal简单用法varlog4js=require('log4js');varlogger=log4js.getLogger();logger.level='debug';logger.debug("Somedebugmessages");getLogger()方法返回一个记录器对象如果你想记录日志,你必须使用记录器对象。设置logger对象的级别为debug(默认为OFF,不输出日志)。在node环境下运行上述代码后,发现控制台打印了相应的日志信息。但这与我想要的完全不同。我想要的是按照自己的想法对日志进行分类,方便查找和统计。接下来我们将看到如何对日志进行分类。configure(string|object)方法可以通过调用configure方法实现我们对日志进行分类管理的目的。该方法的参数可以是字符串或对象。字符串参数被视为用于加载配置的文件名。配置文件是json文件,也可以直接传配置对象给configure。配置对象只介绍配置对象中最常用的appender和category。还有一些属性还没有用到,用到的时候再补充。如果正常使用,这两个属性应该够用了。简单总结一下这两个属性,先从概念上理解它们是干什么用的。Appenders主要用来定义如何输出,输出到哪里(主要功能不限)categories用来定义日志输出的规则然后调用之前定义的appenders输出写一个简单的例子方便理解constlog4js=require('log4js');log4js.configure({appenders:{out:{type:'stdout'},app:{type:'file',文件名:'application.log'}},categories:{default:{appenders:['out','app'],level:'debug'}}});varlogger=log4js.getLogger();logger.debug("一些调试信息");运行代码会创建应用程序的.log文件在项目目录下,日志会同时输出到控制台和application.log文件。上面定义了两个appender,一个输出到stdout,一个输出到文件。可以看出appender主要是用来定义输出位置的,同时在categories中定义了一个规则,调用appender中定义的输出,输出级别为debugappendersappenders是一个map,key代表appender的name是一个字符串,value中有一个强制属性是type,value的格式根据类型不同。下面我们说几种常用的typefile文件日志会输出到指定的文件中。示例log4js.configure({appenders:{everything:{type:'file',filename:'all-the-logs.log'}},categories:{default:{appenders:['everything'],level:'debug'}}});constlogger=log4js.getLogger();logger.debug('我将登录所有的日志.log');常用配置属性1.type:'file'2.文件名字符串输出文件的名称3.maxLogSizeinteger日志文件的最大大小(以字节为单位)。如果未指定,则不会发生日志回滚。4.备份日志翻转期间保留的旧日志文件的默认数量为55。布局默认为基本布局6。keepFileExtboolean默认为false以在滚动日志文件时保留文件扩展名(file.log变为file.1.log而不是文件.log.1)7.compress压缩滚动日志文件dateFiledateFile日志的滚动将基于配置的时间格式而不是文件大小示例一切'],级别:'调试'}}});常用配置属性1.type:'dateFile'2.filenamestring输出文件的名称3.pattern(默认为.yyyy-MM-dd)-用于确定何时滚动日志的模式。4.layout默认是basiclayout5。daysToKeep整数(默认为0)-如果此值大于零,则在日志回滚期间将删除早于该天数的文件。6.keepFileExt(默认false)——滚动日志文件时保留文件扩展名(file.log变为file.2017-05-30.log而不是file.log.2017-05-307。压缩滚动日志文件压缩类别类别也是一个map类型的数据,key是category的名字是一个字符串,value是一个对象value的公共属性level定义了打印日志的级别appenders定义了appender的getLogger([category])方法getLogger方法返回的是一个logger对象,logger对象用于打印各种级别的日志,getlogger方法有一个可选参数categoryname,如果不写,将使用category中默认定义的规则打印。填写完成后,会根据对应的类别定义,按照规则打印日志。参考文档api