超簡單的nodejs使用log4js保存日志到本地(可直接復制使用)

引入依賴

npm install log4js

新建配置文件logUtil.js

const log4js = require('log4js');// 日志配置
log4js.configure({appenders: {// 控制臺輸出consoleAppender: { type: 'console' },// 文件輸出fileAppender: {type: 'dateFile',filename: './logs/default',  //日志文件的存儲名alwaysIncludePattern: true,  //(可選,默認false)將模式包含在當前日志文件的名稱以及備份中pattern: "yyyy-MM-dd.log",encoding: 'utf-8', //(可選,默認為utf-8)文件數據的存儲編碼maxLogSize: 1024 * 1024 * 1 // 文件最大存儲空間}},categories: {// 設置默認所有日志都記錄default: { appenders: ['consoleAppender', 'fileAppender'], level: 'all' } }
});module.exports = log4js

在服務文件index.js中設置全局引用

const log4js = require('../utils/logUtil')// 引入log4js配置,初始化全局對象
const logger = log4js.getLogger('default'); // 使用默認類別
global.logger = logger // 賦值給全局對象【logger】,也可以直接替換【console】
// global.console = logger// 捕獲未抓捕的異常,例如進程突然掛掉時的報錯
process.on('uncaughtException', function (err) {logger.error(err.stack) // 保存錯誤的調用棧
});

?然后就可以在所有js文件中通過使用如下方法打印日志了,打印的日志會同時輸出在控制臺及保存到本地文件夾中

// 不同類型的輸出
logger.log('log')
logger.info('info')
logger.error('error')
logger.debug('debug')
logger.warn('warn')
logger.trace('trace')
logger.fatal('fatal')
logger.mark('mark')
// object類型的輸出,可以使用【JSON.stringify(obj, null, 2)】的格式來輸出
logger.error('------------------login fail-------------------')
logger.error('result : \n' + JSON.stringify(obj, null, 2))
logger.error('message : ' +  message)
logger.error('time : ' + nowTime)
logger.error('-----------------------------------------------')

?效果如下:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/37674.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/37674.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/37674.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何從0構建一款類似pytest的工具

Pytest主要模塊 Pytest 是一個強大且靈活的測試框架,它通過一系列步驟來發現和運行測試。其核心工作原理包括以下幾個方面:測試發現:Pytest 會遍歷指定目錄下的所有文件,找到以 test_ 開頭或 _test.py 結尾的文件,并且…

python 實例002 - 數據轉換

題目: 有一組用例數據如下: cases [[case_id, case_title, url, data, excepted],[1, 用例1, www.baudi.com, 001, ok],[4, 用例4, www.baudi.com, 002, ok],[2, 用例2, www.baudi.com, 002, ok],[3, 用例3, www.baudi.com, 002, ok],[5, 用例5, www.ba…

MS-Net: A Multi-Path Sparse Model for Motion Prediction in Multi-Scenes

MS-Net: A Multi-Path Sparse Model for Motion Prediction in Multi-Scenes 基本信息 期刊:IEEE ROBOTICS AND AUTOMATION LETTERS (IF 4.6 SCI3區)單位:同濟大學,上海人工智能實驗室時間:2023年12月數據…

架構師必知的絕活-JVM調優

前言 為什么要學JVM? 首先:面試需要 了解JVM能幫助回答面試中的復雜問題。面試中涉及到的JVM相關問題層出不窮,難道每次面試都靠背幾百上千條面試八股? 其次:基礎知識決定上層建筑 自己寫的代碼都不知道是怎么回事&a…

精準圖像識別:算法與應用的雙重突破

精準圖像識別在近年來取得了算法與應用的雙重突破,這些突破不僅推動了技術的發展,也極大地拓寬了圖像識別的應用領域。以下是對這些突破的詳細概述: 算法突破 深度學習技術的崛起:深度學習,特別是卷積神經網絡&#…

C++中的虛函數表結構框架

一.虛函數表介紹 Virtual Table虛函數表是實現多態的 每個有虛函數的類的實現,都有個指向虛函數的指針表(不管是父類還是子類) 指向虛表的指針是作為數據成員存在實例對象中 當調用虛函數時,就去查找對象的虛表中指向整頓派生類函…

golang template HTML動態模板解析實現

使用場景: 我們希望在模板里面動態解析指定的模板文件。 這個似乎使用go語言的模板嵌套 template 可以實現,不過模板嵌套聲明里面是不支持使用變量的, 如:{{template "模板文件名" .}} 這里的"模板文件名"不…

LeetCode 2710.移除字符串中的尾隨零:模擬

【LetMeFly】2710.移除字符串中的尾隨零:模擬 力扣題目鏈接:https://leetcode.cn/problems/remove-trailing-zeros-from-a-string/ 給你一個用字符串表示的正整數 num ,請你以字符串形式返回不含尾隨零的整數 num 。 示例 1: 輸…

Apache Kylin資源管理全指南:優化你的大數據架構

標題:Apache Kylin資源管理全指南:優化你的大數據架構 摘要 Apache Kylin是一個開源的分布式分析引擎,旨在為大規模數據集提供高性能的SQL查詢能力。在Kylin中進行有效的資源管理對于確保查詢性能和系統穩定性至關重要。本文將詳細介紹如何…

leetcode 133雙周賽 統計逆序對的數目「dp」「前綴和優化」

3193. 統計逆序對的數目 題目描述: 給定一個長度為n的二維數組 r e re re,其中 r e [ i ] [ i d i , c n t i ] re[i] [id_i, cnt_i] re[i][idi?,cnti?],求存在多少個全排列perm滿足對所有的 r e [ i ] re[i] re[i]都有 p e r m [ 0.. …

Bayes分類器設計

本篇文章是博主在人工智能等領域學習時,用于個人學習、研究或者欣賞使用,并基于博主對人工智能等領域的一些理解而記錄的學習摘錄和筆記,若有不當和侵權之處,指出后將會立即改正,還望諒解。文章分類在AI學習筆記&#…

東方博宜 OJ 1201-1300

目錄 1268:【基礎】高精度加法 1269:【基礎】高精度減法 1280:【基礎】求 2 的 n 次方 1281:【基礎】求 222222?222?2 1285:【基礎】計算 N 的階乘 1286:【基礎】高精度乘單精度 1287:【基礎】高精…

第一百三十三節 Java數據類型教程 - Java基本數據類型

Java數據類型教程 - Java基本數據類型 Java定義了八種基本類型的數據:byte,short,int,long,char,float,double和boolean。 基本類型通常被稱為簡單類型。 這些可以分為四組: Integers - 包括byte&#x…

求推薦幾款http可視化調試工具?

Postman 非常流行的API調試工具,適用于構建、測試和文檔化APIs。它支持各種HTTP方法,有強大的集合和環境管理功能,以及代碼生成能力。 BB-API 是一款旨在提升開發效率的工具,它專注于提供簡約、完全免費且功能強大的HTTP模擬請…

目標檢測算法

一、緒論 1.1 目標檢測算法的定義和背景 1.2 目標檢測算法在計算機視覺領域的重要性 二、目標檢測算法的發展歷程 2.1 傳統目標檢測算法 2.2 基于深度學習的目標檢測算法 2.3 目標檢測算法的評價指標 三、目標檢測算法的關鍵技術 3.1 區域建議網絡(RPN) 3.2 卷積神經…

springmvc快速上手

一、創建工程 1、創建maven工程&#xff0c;添加maven-archetype-webapp模版 2、添加依賴 <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.co…

每日一題——Python實現PAT乙級1059 C語言競賽(舉一反三+思想解讀+逐步優化)四千字好文

一個認為一切根源都是“自己不夠強”的INTJ 個人主頁&#xff1a;用哲學編程-CSDN博客專欄&#xff1a;每日一題——舉一反三Python編程學習Python內置函數 Python-3.12.0文檔解讀 目錄 我的寫法 時間復雜度分析 空間復雜度分析 代碼優化建議 總結 我要更強 優化方法…

macos Darwin安裝faiss-cpu

文章目錄 macos 使用brew instll fass, 后python3.12執行引用faiss包功能出現的問題 安裝時遇到問題如下 ModuleNotFoundError Traceback (most recent call last) File ~/Src/ai/framework/langchain/.venv/lib/python3.12/site-packages/langchain_co…

Spring事務的實現

Spring事務的實現分為編程式事務和聲明式事務。 編程式事務 編程式事務管理需要開發者在代碼中顯式地調用事務管理相關的方法,如`beginTransaction()`、`commit()`和`rollback()`等。在Spring中,通常通過以下兩種方式來實現編程式事務: 使用`TransactionTemplate`,`Tran…

macOS 安裝redis

安裝Redis在macOS上通常通過Homebrew進行&#xff0c;Homebrew是macOS上一個流行的包管理器。以下是安裝Redis的步驟&#xff1a; 一 使用Homebrew安裝Redis 1、安裝Homebrew&#xff08;如果尚未安裝&#xff09;&#xff1a; 打開終端&#xff08;Terminal&#xff09;并執…