這篇文章主要介紹了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中文網其他相關文章!

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

JavaScript不需要安裝,因為它已內置於現代瀏覽器中。你只需文本編輯器和瀏覽器即可開始使用。 1)在瀏覽器環境中,通過標籤嵌入HTML文件中運行。 2)在Node.js環境中,下載並安裝Node.js後,通過命令行運行JavaScript文件。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),