log4js+nodejs如何實現日志功能,打印到對應的文件當中?


  我相信您進來找,一定是不知道如何引入對應的地方,導致無法實現功能因為網上代碼都一樣,

  那就詳細聽小生一講,這里講解全部步驟,謝謝。

1.下載 log4js 日志模板

(1)進入您想實現功能的項目文件夾中,例如:

#1.在桌面創建一個文件夾(日志功能)

 

#2.進入該文件夾,在上面路勁條位置,輸入 “cmd” 再按 “回車鍵”,在該文件夾下進入終端。

#3.在終端內輸入:npm i -s log4js  

 終端就會自動下載log4js,可見情況如下

  下載完成后出現顯示對應版本信息

2.在該項目文件(日志功能)下,創建log.js 和 調用位置(本例子test.js)

  先看看文件目錄:

  

  (1)創建log.js,代碼如下:

var log4js = require('log4js');//引入剛剛下載的log4js日志模板


log4js.configure({
    appenders:{
        console:{type:'console'},
        file:{
            type:'file',
            filename:'all.log',
            layout:{
                type:'pattern',
                pattern:'%d{yyyyMMdd hh:mm:ss} {%p} %m'
            }
        }
    },
    categories:{
        default:{
            appenders:['console','file'],
            level:'debug'      
        }
    }
})


module.exports=log4js.getLogger();//暴露log4js模板,其他功能點才能應用

  講解:

   1.configure():對日志輸出進行配置
   getlogger(): 獲取logger對象,使用logger對象進行各級別的日志打印

   appenders:主要定義以什么樣的方式輸出(定義輸出的位置)
   categories:定義日志輸出的規則,然后調用之前定義好的appenders進行輸出(定義輸出的規則)

   2.其中設置level的級別,由低到高有,本例子為:level:'debug'

    trace->debug->info->warn->error->fatal

    這里設置了級別,日志輸出只有在設置級別之上才能輸出。

      例如:我這里假設設置了level:'error'

         那么我在后面引用的時候(logger.info()部分),只是用了Info,那么將無法打印出日志

  (2)創建text.js引用前面模板的地方

      講解:

        var logger=require('./log.js')

        把log.js暴露出來的封裝模板進行引入,放在需要引入的文件聲明變量的位置。

        logger.info(需要輸出的日志內容(包括您想要的 字符串/數字/變量))

var logger=require('./log.js')

logger.info('管理員小明添加了學生A')//此處,如果有上面變量可以通過聲明引進來就可以實現,比如變量某某管理員添加了某某學生
//其中日志級別只需要到info就行

3.運行該應用文件(text.js)

  (1)在剛才的終端里面輸入:node test.js

  

  (2)可見終端已經生成了一段日志,此時也可以在文件夾(日志功能)里面看見有 “all.log”文件,打開可見操作日志保存的內容。

  

 4.另外講解部分:

  如果您還沒懂引入到哪里,那么請看這個

  (1)好比說,我這里有一個在router.js文件里的“添加信息功能模塊”,然后在前面引入封裝的module(讀音:摸🐖):

    引入代碼為:var logger = require('./log.js');

  

 

   (2)然后在添加功能模塊的post位置引入,因為當信息被修改提交了才需要生成日志,當然也根據您的業務流程需要填寫對應位置

    生成日志代碼為:logger.info(根據您的業務生成的日志操作內容);

  

 

 

  日志功能,引用部分差不多講清楚了,如果有未弄明白,沒有get到該點,

  請您給我留言,第一時間解答您的疑惑,非常感謝您的細心閱讀。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM