nodejs log4js 使用

栏目: Node.js · 发布时间: 5年前

内容简介:本文章针对 log4js v4.3本文对自己用log4js的技术点简单的做一个记录,有一些技术点没有用到或者写全,会在后面用到的时候进行更新。先大概的对log4js 的基本用法做一个总结,使用

本文章针对 log4js v4.3

本文对自己用log4js的技术点简单的做一个记录,有一些技术点没有用到或者写全,会在后面用到的时候进行更新。

先大概的对log4js 的基本用法做一个总结,使用 configure() 方法对日志输出进行配置,使用 getlogger() 方法获取 logger 对象,然后使用logger 对象进行打印各个级别的日志。其中比较复杂的是 configure() 方法中的配置对象 appenders 和 categories 下面重点讲解这两个对象

安装

npm install --save log4js

日志级别level

log4js的分为以下几个级别,级别的顺序也是按如下排列, logger只会打印大于等于logger对象设置的level的日志

  1. trace
  2. debug
  3. info
  4. warn
  5. error
  6. fatal

简单的用法

var log4js = require('log4js');
var logger = log4js.getLogger();
logger.level = 'debug';
logger.debug("Some debug messages");
复制代码

getLogger() 方法返回一个logger对象,想对日志进行记录就必须使用logger对象,将logger对象的 level设置为 debug (默认为 OFF 不会输出任何日志)

在node 环境运行上面的代码之后发现在控制台打印出了对应的日志信息,但是这跟我想要的完全不一样,我想要的是根据我自己的想法将日志进行分类方便查找和统计。接下来我们就看如何对日志进行分类。

configure(string | object) 方法

通过调用 configure 方法就可以实现我们对日志进行分类管理的目的。方法的参数可以是一个字符串或者是一个object 字符串参数被视为用于加载配置的文件名,配置文件是一个json 文件,也可以直接将配置对象传给configure。

配置对象

本次只对配置对象中最常用的 appenderscategories 进行介绍,还有部分属性暂时还没有用到等用到的时候在进行补充,如果平常用的话这两个属性应该就够了。

简单的总结一下这两个属性,先有一个概念性的认识了解一下他们分别是干什么的。 appenders 主要是用来定义以怎样的方式输出,输出到哪里(主要功能不仅限于) categories 是用来定义日志输出的规则然后调用之前定义好的 appenders 进行输出

写一个简单的例子方便理解一下

const log4js = require('log4js');
log4js.configure({
  appenders: {
    out: { type: 'stdout' },
    app: { type: 'file', filename: 'application.log' }
  },
  categories: {
    default: { appenders: [ 'out', 'app' ], level: 'debug' }
  }
});

var logger = log4js.getLogger();
logger.debug("Some debug messages");
复制代码

运行上的代码将会创建 application.log 文件在项目目录下,同时会把日志打到控制台和 application.log 文件中. 上面定义了两个appender 一个是输出到 stdout 一个是输出到 file ,可以看出appender主要使用来定义输出位置的 同时在categories 中定义了一个规则,调用了appender中定义的输出,并且输出级别为 debug

appenders

appenders 的是一个map, key 代表的是appender的名字是一个字符串,value里面有一个必选的属性是 type ,根据type 的不同value 的格式也不一样,下面我们说几种常用的 type

file

file 日志将会输出到指定的文件中。

例子

log4js.configure({
  appenders: {
    everything: { type: 'file', filename: 'all-the-logs.log' }
  },
  categories: {
    default: { appenders: [ 'everything' ], level: 'debug' }
  }
});

const logger = log4js.getLogger();
logger.debug('I will be logged in all-the-logs.log');
复制代码

常用配置属性 1. type:'file' 2. filename string 输出文件的名字 3. maxLogSize integer日志文件的最大大小(以字节为单位)。如果未指定,则不会发生日志滚动。 4. backups日志滚动期间要保留的旧日志文件数默认为5 5. layout 默认是basic layout 6. keepFileExt boolean 默认为false 滚动日志文件时保留文件扩展名(file.log变为file.1.log而不是file.log.1) 7. compress 对滚动的日志文件进行压缩

dateFile

dateFile 日志的滚动将根据配置的时间格式进行滚动而不是文件大小

例子

log4js.configure({
  appenders: {
    everything: { type: 'dateFile', filename: 'all-the-logs.log' }
  },
  categories: {
    default: { appenders: [ 'everything' ], level: 'debug' }
  }
});
复制代码

常用配置属性

1. type:'dateFile'
2. filename string 输出文件的名字
3. pattern(默认为.yyyy-MM-dd) - 用于确定何时滚动日志的模式。
4. layout 默认是basic layout
5. daysToKeep integer(默认为0) - 如果此值大于零,则在日志滚动期间将删除早于该天数的文件。
6. keepFileExt (默认为false) - 在滚动日志文件时保留文件扩展名(file.log变为file.2017-05-30.log而不是file.log.2017-05-30
7. compress 对滚动的日志文件进行压缩
复制代码

categories

categories 也是一个map类型的数据,key是 category 的名字是一个字符串,value 是一个对象。 value 的常用属性

  1. level 定义打印日志的级别
  2. appenders 定义打印的appender

getLogger([category]) 方法

getLogger 方法返回的是一个 logger 对象,logger对象用来打印各个级别的日志。 getlogger 方法有一个可选参数category的名字,不写的情况会使用 categories 中default 定义的规则进行打印,填写之后会根据对应的 category定义的规则进行打印日志。

参考文档 api


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

沸騰15年

沸騰15年

林軍 / 商周出版 / 2010年09月19日 / NTD:430元

從一九九五年到二○○九年,中國互聯網崛起、發展和壯大。 在短短十五年間 產生了十五家市值超過十億的上市公司 這些前仆後繼的先行者 不但用網際網路創造了歷史,也改寫了自己的財富路徑。 這本關於中國互聯網產業歷史的書,脈絡清晰、生動鮮明地把一大批創業者的形象和他們的動人故事呈現在讀者眼前,值得一讀。 ——中國互聯網協會理事長、中國科協副主席 胡啟?? 林軍這本......一起来看看 《沸騰15年》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

html转js在线工具
html转js在线工具

html转js在线工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具