最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

nodejs log4js 使用詳解

 更新時間:2019年05月31日 10:08:45   作者:曹飛龍  
這篇文章主要介紹了nodejs log4js 使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

本文章針對 log4js v4.3

本文對自己用log4js的技術(shù)點簡單的做一個記錄,有一些技術(shù)點沒有用到或者寫全,會在后面用到的時候進(jìn)行更新。

先大概的對log4js 的基本用法做一個總結(jié),使用configure()方法對日志輸出進(jìn)行配置,使用 getlogger()方法獲取logger對象,然后使用logger 對象進(jìn)行打印各個級別的日志。其中比較復(fù)雜的是 configure()方法中的配置對象appenders 和 categories 下面重點講解這兩個對象

安裝

npm install --save log4js

日志級別level

log4js的分為以下幾個級別,級別的順序也是按如下排列,logger只會打印大于等于logger對象設(shè)置的level的日志。

  • trace
  • debug
  • info
  • warn
  • error
  • fatal

簡單的用法

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

getLogger()方法返回一個logger對象,想對日志進(jìn)行記錄就必須使用logger對象,將logger對象的 level設(shè)置為debug(默認(rèn)為OFF不會輸出任何日志)

在node 環(huán)境運行上面的代碼之后發(fā)現(xiàn)在控制臺打印出了對應(yīng)的日志信息,但是這跟我想要的完全不一樣,我想要的是根據(jù)我自己的想法將日志進(jìn)行分類方便查找和統(tǒng)計。接下來我們就看如何對日志進(jìn)行分類。

configure(string | object) 方法

通過調(diào)用configure 方法就可以實現(xiàn)我們對日志進(jìn)行分類管理的目的。方法的參數(shù)可以是一個字符串或者是一個object 字符串參數(shù)被視為用于加載配置的文件名,配置文件是一個json 文件,也可以直接將配置對象傳給configure。

配置對象

本次只對配置對象中最常用的appenders 和categories 進(jìn)行介紹,還有部分屬性暫時還沒有用到等用到的時候在進(jìn)行補充,如果平常用的話這兩個屬性應(yīng)該就夠了。

簡單的總結(jié)一下這兩個屬性,先有一個概念性的認(rèn)識了解一下他們分別是干什么的。

appenders 主要是用來定義以怎樣的方式輸出,輸出到哪里(主要功能不僅限于)

categories 是用來定義日志輸出的規(guī)則然后調(diào)用之前定義好的 appenders 進(jìn)行輸出

寫一個簡單的例子方便理解一下

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");

運行上的代碼將會創(chuàng)建application.log 文件在項目目錄下,同時會把日志打到控制臺和 application.log文件中.
上面定義了兩個appender 一個是輸出到 stdout 一個是輸出到 file ,可以看出appender主要使用來定義輸出位置的
同時在categories 中定義了一個規(guī)則,調(diào)用了appender中定義的輸出,并且輸出級別為 debug

appenders

appenders 的是一個map, key 代表的是appender的名字是一個字符串,value里面有一個必選的屬性是type,根據(jù)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日志文件的最大大?。ㄒ宰止?jié)為單位)。如果未指定,則不會發(fā)生日志滾動。
4. backups日志滾動期間要保留的舊日志文件數(shù)默認(rèn)為5
5. layout 默認(rèn)是basic layout
6. keepFileExt boolean  默認(rèn)為false 滾動日志文件時保留文件擴展名(file.log變?yōu)閒ile.1.log而不是file.log.1)
7. compress 對滾動的日志文件進(jìn)行壓縮

dateFile

dateFile 日志的滾動將根據(jù)配置的時間格式進(jìn)行滾動而不是文件大小

例子

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(默認(rèn)為.yyyy-MM-dd) - 用于確定何時滾動日志的模式。
4. layout 默認(rèn)是basic layout
5. daysToKeep integer(默認(rèn)為0) - 如果此值大于零,則在日志滾動期間將刪除早于該天數(shù)的文件。
6. keepFileExt (默認(rèn)為false) - 在滾動日志文件時保留文件擴展名(file.log變?yōu)閒ile.2017-05-30.log而不是file.log.2017-05-30
7. compress 對滾動的日志文件進(jìn)行壓縮

categories

categories 也是一個map類型的數(shù)據(jù),key是 category 的名字是一個字符串,value 是一個對象。

value 的常用屬性

  1. level 定義打印日志的級別
  2. appenders 定義打印的appender

getLogger([category]) 方法

getLogger 方法返回的是一個logger 對象,logger對象用來打印各個級別的日志。

getlogger 方法有一個可選參數(shù)category的名字,不寫的情況會使用 categories 中default 定義的規(guī)則進(jìn)行打印,填寫之后會根據(jù)對應(yīng)的 category定義的規(guī)則進(jìn)行打印日志。

參考文檔 api

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 深入解析koa之異步回調(diào)處理

    深入解析koa之異步回調(diào)處理

    這篇文章主要介紹了深入解析koa之異步回調(diào)處理,我們研究一下koa當(dāng)中異步回調(diào)同步化寫法的原理,同樣的,我們也會實現(xiàn)一個管理函數(shù),是的我們能夠通過同步化的寫法來寫異步回調(diào)函數(shù)。,需要的朋友可以參考下
    2019-06-06
  • nodejs中用npm初始化來創(chuàng)建package.json的實例講解

    nodejs中用npm初始化來創(chuàng)建package.json的實例講解

    今天小編就為大家分享一篇nodejs中用npm初始化來創(chuàng)建package.json的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • jQuery+koa2實現(xiàn)簡單的Ajax請求的示例

    jQuery+koa2實現(xiàn)簡單的Ajax請求的示例

    這篇文章主要介紹了jQuery+koa2實現(xiàn)簡單的Ajax請求的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • 淺談在node.js進(jìn)入文件目錄的問題

    淺談在node.js進(jìn)入文件目錄的問題

    今天小編就為大家分享一篇淺談在node.js進(jìn)入文件目錄的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 淺談如何通過node.js對數(shù)據(jù)進(jìn)行MD5加密

    淺談如何通過node.js對數(shù)據(jù)進(jìn)行MD5加密

    本篇文章將主要針對于在NODE.JS中如何對數(shù)據(jù)進(jìn)行MD5加密,MD5是一種常用的哈希算法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Node.js的MongoDB驅(qū)動Mongoose基本使用教程

    Node.js的MongoDB驅(qū)動Mongoose基本使用教程

    這篇文章主要介紹了Node.js的MongoDB驅(qū)動Mongoose的基本使用教程,前端js+后端Node.js+數(shù)據(jù)庫MongoDB是當(dāng)下流行的JavaScript全棧開發(fā)方案,需要的朋友可以參考下
    2016-03-03
  • npm?list輸出結(jié)果包含extraneous標(biāo)志記錄分析

    npm?list輸出結(jié)果包含extraneous標(biāo)志記錄分析

    這篇文章主要為大家介紹了npm?list輸出結(jié)果包含extraneous標(biāo)志記錄分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • 詳解Node.JS模塊 process

    詳解Node.JS模塊 process

    這篇文章主要介紹了Node.JS模塊 process的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)node.js,感興趣的朋友可以了解下
    2020-08-08
  • NodeJS中配置請求代理服務(wù)器方式

    NodeJS中配置請求代理服務(wù)器方式

    這篇文章主要介紹了NodeJS中配置請求代理服務(wù)器方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Node.js連接MongoDB數(shù)據(jù)庫產(chǎn)生的問題

    Node.js連接MongoDB數(shù)據(jù)庫產(chǎn)生的問題

    Node.js是使用JavaScript 編寫的可以運行在服務(wù)端的JS語言。node.js和mongodb碰撞會產(chǎn)生一系列問題,下面通過本文給大家分享Node.js連接MongoDB數(shù)據(jù)庫,需要的的朋友參考下
    2017-02-02

最新評論

定结县| 富顺县| 饶阳县| 砚山县| 周宁县| 富川| 台山市| 行唐县| 普定县| 高邮市| 丰都县| 嘉定区| 泰顺县| 呼图壁县| 慈利县| 都安| 措美县| 德兴市| 长岛县| 泸西县| 夏邑县| 无锡市| 固阳县| 鹤峰县| 敦煌市| 行唐县| 泸州市| 安平县| 江陵县| 项城市| 武穴市| 迭部县| 福海县| 堆龙德庆县| 连山| 龙海市| 潢川县| 米林县| 鸡泽县| 安康市| 南乐县|