log4js-node

log4j.helper.ts

import { Logger ,configure, getLogger} from 'log4js'

 
    configure({
        appenders: {
          console: {
             type: "console"
          },
          log_file: { 
                //   type: "file", 
                //   filename: "log/app.log" 
                type : 'file',
                filename: `logs/app.log`,//文件目錄,當目錄文件或文件夾不存在時,會自動創建
                alwaysIncludePattern: true,
                maxLogSize : 20971520,//文件最大存儲空間(byte),當文件內容超過文件存儲空間會自動生成一個文件test.log.1的序列自增長的文件
                backups : 3,//default value = 5.當文件內容超過文件存儲空間時,備份文件的數量
                //compress : true,//default false.是否以壓縮的形式保存新文件,默認false。如果true,則新增的日誌文件會保存在gz的壓縮文件內,並且生成後將不被替換,false會被替換掉
                pattern: "_yyyy-MM-dd.log",//(可選,默認爲.yyyy-MM-dd) - 用於確定何時滾動日誌的模式。格式:.yyyy-MM-dd-hh:mm:ss.log
                encoding : 'utf-8',//default "utf-8",文件的編碼
            },
             
            data_file:{//:記錄器3:輸出到日期文件
                type: "dateFile",
                filename: `logs/app.log`,//您要寫入日誌文件的路徑
                alwaysIncludePattern: true,//(默認爲false) - 將模式包含在當前日誌文件的名稱以及備份中
                daysToKeep:10,//時間文件 保存多少天,距離當前天daysToKeep以前的log將被刪除
                //compress : true,//(默認爲false) - 在滾動期間壓縮備份文件(備份文件將具有.gz擴展名)
                pattern: "-yyyy-MM-dd-hh.log",//(可選,默認爲.yyyy-MM-dd) - 用於確定何時滾動日誌的模式。格式:.yyyy-MM-dd-hh:mm:ss.log
                encoding : 'utf-8',//default "utf-8",文件的編碼
            },
            error_file:{//:記錄器4:輸出到error log
                type: "dateFile",
                filename: `logs/app.log`,//您要寫入日誌文件的路徑
                alwaysIncludePattern: true,//(默認爲false) - 將模式包含在當前日誌文件的名稱以及備份中
                daysToKeep:10,//時間文件 保存多少天,距離當前天daysToKeep以前的log將被刪除
                //compress : true,//(默認爲false) - 在滾動期間壓縮備份文件(備份文件將具有.gz擴展名)
                pattern: "_yyyy-MM-dd.log",//(可選,默認爲.yyyy-MM-dd) - 用於確定何時滾動日誌的模式。格式:.yyyy-MM-dd-hh:mm:ss.log
                encoding : 'utf-8',//default "utf-8",文件的編碼
                // compress: true, //是否壓縮
            }
        },
        categories: {
           
           // default: { appenders: ["console", "logfile"], level: "error" }

             default:{appenders:['data_file', 'console', 'log_file'], level:'info' },//默認log類型,輸出到控制檯 log文件 log日期文件 且登記大於info即可
             production:{appenders:['data_file'], level:'warn'},  //生產環境 log類型 只輸出到按日期命名的文件,且只輸出警告以上的log
             console:{appenders:['console'], level:'debug'}, //開發環境  輸出到控制檯
             debug:{appenders:['console', 'log_file'], level:'debug'}, //調試環境 輸出到log文件和控制檯    
             trace:{appenders:['console', 'log_file'], level:'trace'}, //調試環境 輸出到log文件和控制檯    
             error_log:{appenders:['error_file'], level:'error'}//error 等級log 單獨輸出到error文件中 任何環境的errorlog 將都以日期文件單獨記錄
     
             }
      });
      
     
 

export   class Log4jHelper {

    public static  OutputDebug(msg:string )
    { 
        let logger = getLogger();
        logger.level = "debug";
        logger.debug(msg);  

    }

    public static  OutputWarn(msg:string )
    { 
        let logger = getLogger();
        logger.level = "warn";
        logger.warn(msg); 
    }

    public static  OutputError(msg:string )
    { 
        let logger = getLogger();
        logger.level = "error";
        logger.error(msg); 
    }

    public static  OutputInfo(msg:string )
    { 
        let logger = getLogger();
        logger.level = "info";
        logger.info(msg); 
    }

    public static  OutputTrace(msg:string )
    { 
        let logger = getLogger();
        logger.level = "trace";
        logger.trace(msg); 
    } 
}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章