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);
}
}