首頁 web前端 js教程 有關Express中log4js實際用法

有關Express中log4js實際用法

Jun 06, 2018 am 11:27 AM
express

這篇文章主要介紹了Express進階之log4js實用入門指南,現在分享給大家,也給大家做個參考。

對於線上項目用來說,日誌是非常重要的一環。 log4js是使用得比較多的一個日誌元件,常常跟Express一起搭配使用。本文從入門實例開始,講解log4js的使用,以及如何跟Express整合。

入門範例

輸出日誌如下,包含日誌列印時間、日誌等級、日誌分類、日誌內容。

// started.js
var log4js = require('log4js');
var logger = log4js.getLogger();
logger.debug('hello world');

// 输出: 
// [2017-02-28 21:28:22.853] [DEBUG] [default] - hello world
登入後複製

日誌等級

logger.setLevel('INFO'); 表示想要列印的最低等級的日誌是INFO ,也就是說,呼叫類似logger. debug() 等等級低於INFO 的接口,日誌是不會印出來的。

var log4js = require('log4js');
var logger = log4js.getLogger();
logger.setLevel('INFO');

logger.debug('level: debug');
logger.info('level: info');
logger.error('level: error');

// 输出如下:
// [2017-02-28 21:50:45.372] [INFO] [default] - level: info
// [2017-02-28 21:50:45.376] [ERROR] [default] - level: error
登入後複製

日誌類別

除層級外,還可以對日誌進行分類, log4js.getLogger(category) ,如下所示

var log4js = require('log4js');
var alogger = log4js.getLogger('category-a');
var blogger = log4js.getLogger('category-b');

alogger.info('hello');
blogger.info('hello');

// 输出如下:
// [2017-02-28 22:36:57.570] [INFO] category-a - hello
// [2017-02-28 22:36:57.574] [INFO] category-b - hello
登入後複製

appenders

appenders指定日誌輸出的位置,可以同時配置多個,用category進行區分。例如 log4js.getLogger('info') 應用的就是 type 為 dateFile 的設定。

可以注意到, type 為 console 的設定沒有宣告 category ,因此,所有的日誌都會列印到控制台。

var log4js = require('log4js');

log4js.configure({
  appenders: [
    { type: 'console'},
    { type: 'dateFile', filename: './logs/info.log', category: 'info' }
  ]
});

var logger = log4js.getLogger('info');
logger.setLevel('INFO');

logger.trace('trace');
logger.debug('debug');
logger.info('info');

// 输出如下:
// [2017-02-28 22:51:30.723] [INFO] info - info
登入後複製

express應用程式

一個比較簡單的範例如下,日誌全部都印到控制台。

var express = require('express');
var log4js = require('log4js');
var app = express();

log4js.configure({
  appenders: [
    { type: 'console', category: 'app' }
  ]
});

var logger = log4js.getLogger('app');

logger.setLevel('INFO'); // 级别 > INFO 的日志才会被打印

app.use( log4js.connectLogger(logger) );

app.use(function(req, res, next){
  res.send('ok');
});

app.listen(3000);
登入後複製

訪問http://127.0.0.1:3000 ,列印日誌如下

[2017-03-01 00:28:29.301] [INFO] app - ::ffff:127.0. 0.1 - - "GET / HTTP/1.1" 304 - "" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/53773##. #log4js.connectLogger(logger) 時,可以宣告日誌的等級。

// 级别 > INFO 的日志才会被打印
logger.setLevel('INFO'); 

// 日志的级别是 WARN 
app.use( log4js.connectLogger(logger, {level: 'WARN'}) );
登入後複製

注意,如果宣告的日誌等級低於 logger.setLevel(level) 限定的級別,那麼日誌就不會被列印,如下範例。

logger.setLevel('INFO'); 

app.use( log4js.connectLogger(logger, {level: 'DEBUG'}) );
登入後複製

上面是我整理給大家的,希望未來會對大家有幫助。

相關文章:

如何解決Vue無法偵測陣列或物件變動方面問題?

在vue中將物件新增的屬性加入檢測序列的方法有哪些?

在JS中如何產生隨機數字(詳細教學)

#

以上是有關Express中log4js實際用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

node專案中如何使用express來處理檔案的上傳 node專案中如何使用express來處理檔案的上傳 Mar 28, 2023 pm 07:28 PM

怎麼處理文件上傳?以下這篇文章為大家介紹一下node專案中如何使用express來處理文件的上傳,希望對大家有幫助!

深入比較Express和Laravel:如何選擇最佳框架? 深入比較Express和Laravel:如何選擇最佳框架? Mar 09, 2024 pm 01:33 PM

深入比較Express和Laravel:如何選擇最佳框架?在選擇一個適合自己專案的後端框架時,Express和Laravel無疑是兩個備受開發者歡迎的選擇。 Express是基於Node.js的輕量級框架,而Laravel則是基於PHP的流行框架。本文將深入比較這兩個框架的優缺點,並提供具體的程式碼範例,以幫助開發者選擇最適合自己需求的框架。效能和擴展性Expr

Express和Laravel的比較分析:選擇更適合你的框架 Express和Laravel的比較分析:選擇更適合你的框架 Mar 10, 2024 pm 10:15 PM

Express和Laravel是兩個非常受歡迎的Web框架,分別代表了JavaScript和PHP兩大開發語言的優秀框架。本文將針對這兩個架構進行比較分析,幫助開發者選擇更適合自己專案需求的框架。一、框架簡介Express是一個基於Node.js平台的Web應用程式框架,它提供了一系列強大的功能和工具,使開發者可以快速建立高效能的網路應用程式。 Express

聊聊node+express怎麼操作cookie 聊聊node+express怎麼操作cookie Jun 22, 2022 am 10:01 AM

node+express怎麼操作cookie?以下這篇文章就來跟大家介紹一下用node操作cookie的方法,希望對大家有幫助!

Express與Laravel:對比優劣勢,你會選哪一個? Express與Laravel:對比優劣勢,你會選哪一個? Mar 10, 2024 am 08:39 AM

Express與Laravel:對比優劣勢,你會選哪一個?在網路開發領域,Express和Laravel是兩個備受關注的框架。 Express是一個基於Node.js的靈活且輕量級的網頁應用框架,而Laravel是一個基於PHP的優雅且功能豐富的Web開發框架。本文將從功能、易用性、擴展性以及社群支援等方面來比較Express和Laravel的優劣勢,並結合

如何利用React和Express搭建全端JavaScript應用 如何利用React和Express搭建全端JavaScript應用 Sep 26, 2023 pm 01:09 PM

如何利用React和Express來建構全端JavaScript應用引言:React和Express是目前非常流行的JavaScript框架,它們分別用於建構前端和後端應用。本文將介紹如何結合使用React和Express來建構一個全端JavaScript應用程式。我們將逐步講解如何搭建一個簡單的TodoList應用,同時提供具體的程式碼範例。一、準備工作在開始前

Express還是Laravel?選擇最適合你的後端框架 Express還是Laravel?選擇最適合你的後端框架 Mar 10, 2024 pm 06:06 PM

在選擇後端框架時,Express和Laravel都是非常受歡迎的選擇。 Express是基於Node.js的Web應用程式開發框架,而Laravel是基於PHP的Web應用程式開發框架。兩者各有優勢,選擇最適合自己的框架需要考慮多面向因素。 Express框架的優點在於它的靈活性和簡單的學習曲線。 Express的核心思想是“足夠小,足夠靈活”,它提供了大量的中間件

如何使用Node.js建立一個簡單的部落格系統 如何使用Node.js建立一個簡單的部落格系統 Nov 08, 2023 pm 06:45 PM

如何使用Node.js建立一個簡單的部落格系統Node.js是一個基於ChromeV8引擎的JavaScript執行環境,可以讓JavaScript的運作速度更有效率。在Node.js的幫助下,我們可以使用JavaScript建立強大的伺服器端應用程序,包括部落格系統。本文將向您介紹如何使用Node.js建立一個簡單的部落格系統,並為您提供具體的程式碼範例。請按

See all articles