nodejs總結之日志模塊log4js


  1 /**
  2  * npm install log4js
  3  * 源碼及文檔地址:https://github.com/nomiddlename/log4js-node
  4  */
  5 var log4js = require('log4js');
  6 
  7 /**
  8  * 第一種:
  9  * configure方法為配置log4js對象,內部有levels、appenders、categories三個屬性
 10  * levels:
 11  *         配置日志的輸出級別,共ALL<TRACE<DEBUG<INFO<WARN<ERROR<FATAL<MARK<OFF八個級別,default level is OFF
 12  *         只有大於等於日志配置級別的信息才能輸出出來,可以通過category來有效的控制日志輸出級別
 13  * appenders:
 14  *         配置文件的輸出源,一般日志輸出type共有console、file、dateFile三種
 15  *         console:普通的控制台輸出
 16  *         file:輸出到文件內,以文件名-文件大小-備份文件個數的形式rolling生成文件
 17  *         dateFile:輸出到文件內,以pattern屬性的時間格式,以時間的生成文件
 18  * replaceConsole:
 19  *         是否替換控制台輸出,當代碼出現console.log,表示以日志type=console的形式輸出
 20  *                 
 21  */
 22 
 23 log4js.configure({
 24     levels: {
 25         'log_file' : 'info'
 26     },
 27     appenders : [
 28         {
 29             type : 'console',
 30             category: "console"
 31         },
 32         {
 33             type : 'stdout'
 34         },
 35         {
 36             type : 'file',
 37             filename: __dirname + '/logs/test.log',//文件目錄,當目錄文件或文件夾不存在時,會自動創建
 38             maxLogSize : 10,//文件最大存儲空間,當文件內容超過文件存儲空間會自動生成一個文件test.log.1的序列自增長的文件
 39             backups : 3,//default value = 5.當文件內容超過文件存儲空間時,備份文件的數量
 40             //compress : true,//default false.是否以壓縮的形式保存新文件,默認false。如果true,則新增的日志文件會保存在gz的壓縮文件內,並且生成后將不被替換,false會被替換掉
 41             encoding : 'utf-8',//default "utf-8",文件的編碼
 42             category : 'log_file'
 43         },
 44         {
 45             type: "dateFile",
 46             filename: __dirname + '/logs/dateFileTest',//您要寫入日志文件的路徑
 47             alwaysIncludePattern: true,//(默認為false) - 將模式包含在當前日志文件的名稱以及備份中
 48             //compress : true,//(默認為false) - 在滾動期間壓縮備份文件(備份文件將具有.gz擴展名)
 49             pattern: "-yyyy-MM-dd-hh.log",//(可選,默認為.yyyy-MM-dd) - 用於確定何時滾動日志的模式。格式:.yyyy-MM-dd-hh:mm:ss.log
 50             encoding : 'utf-8',//default "utf-8",文件的編碼
 51             category:"log_date",
 52         }
 53     ],
 54     replaceConsole: true
 55 });
 56 
 57 /**
 58  * 第二種
 59  * appenders:
 60  *         一個JS對象,key為上面的category,value是一些其他屬性值
 61  * categories:
 62  *         default表示log4js.getLogger()獲取找不到對應的category時,使用default中的日志配置
 63  *         
 64  */
 65 /*
 66 log4js.configure(
 67           {
 68             appenders: {
 69               file: {
 70                   type : 'file',
 71                 filename: __dirname + '/logs/test.log',//文件目錄,當目錄文件或文件夾不存在時,會自動創建
 72                 maxLogSize : 10,//文件最大存儲空間,當文件內容超過文件存儲空間會自動生成一個文件test.log.1的序列自增長的文件
 73                 backups : 3,//當文件內容超過文件存儲空間時,備份文件的數量
 74                 //compress : true,//是否以壓縮的形式保存新文件,默認false。如果true,則新增的日志文件會保存在gz的壓縮文件內,並且生成后將不被替換,false會被替換掉
 75                 encoding : 'utf-8',//default "utf-8",文件的編碼
 76                 category : 'log_file'
 77                 numBackups: 5, // keep five backup files
 78                 compress: true, // compress the backups
 79                 encoding: 'utf-8',
 80               },
 81               dateFile: {
 82                 type: 'dateFile',
 83                 filename: 'more-important-things.log',
 84                 pattern: 'yyyy-MM-dd-hh',
 85                 compress: true
 86               },
 87               out: {
 88                 type: 'stdout'
 89               }
 90             },
 91             categories: {
 92               default: { appenders: ['file', 'dateFile', 'out'], level: 'trace' }
 93             }
 94           }
 95         );
 96 */
 97 var logger = log4js.getLogger('log_file');
 98 var logger1 = log4js.getLogger('log_date');
 99 
100 logger.info("this is a log4js test1111111111111!");
101 logger1.info("this is a log4js test1111111111111!");
102 console.log("test test!!");

 


免責聲明!

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



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