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!!");