/**
* log4js日志封装
* @date 2022-11-25 21:06:17
* @author NingYouyu
*/
// 引入log4js开始封装日志
const log4js = require("log4js")
// 定义级别,集中管理,防止日后不小心写错
const levels = {
trace:log4js.levels.TRACE,
debug:log4js.levels.DEBUG,
info:log4js.levels.INFO,
warn:log4js.levels.WARN,
error:log4js.levels.ERROR,
fatal:log4js.levels.FATAL,
}
// log4js配置,包括分类和追加器
// 定义相关配置
log4js.configure({
// 追加器
appenders: {
// 追加器名字可以自定义
console: {
type: "console", // 控制台输出
},
// 追加器名字可以自定义
trace: {
type: "file", // 文件输出
filename: "log/trace", // 文件名
pattern: "yyyy-MM-dd.log", // 文件后缀
alwaysIncludePattern: true, // 文件名和文件后缀结合, 类似 "trace.2022-10-07.log"
},
// 追加器名字可以自定义
debug: {
type: "file", // 文件输出
filename: "log/debug", // 文件名
pattern: "yyyy-MM-dd.log", // 文件后缀
alwaysIncludePattern: true, // 文件名和文件后缀结合, 类似 "trace.2022-10-07.log"
},
// 追加器名字可以自定义
info: {
type: "file", //文件输出
filename: "log/info", //文件名
pattern: "yyyy-MM-dd.log", //文件后缀
alwaysIncludePattern: true, //文件名和文件后缀结合, 类似 "trace.2022-10-07.log"
},
// 追加器名字可以自定义
warn: {
type: "file", //文件输出
filename: "log/warn", //文件名
pattern: "yyyy-MM-dd.log", //文件后缀
alwaysIncludePattern: true, //文件名和文件后缀结合, 类似 "trace.2022-10-07.log"
},
// 追加器名字可以自定义
error: {
type: "file", //文件输出
filename: "log/error", //文件名
pattern: "yyyy-MM-dd.log", //文件后缀
alwaysIncludePattern: true, //文件名和文件后缀结合, 类似 "trace.2022-10-07.log"
},
// 追加器名字可以自定义
fatal: {
type: "file", //文件输出
filename: "log/fatal", //文件名
pattern: "yyyy-MM-dd.log", //文件后缀
alwaysIncludePattern: true, //文件名和文件后缀结合, 类似 "trace.2022-10-07.log"
},
},
// 分类
categories: {
// default 分类必须要有, 否则报错
default: {
// 支持多个追加器
appenders: ["console"],
// 定义级别为 debug
level: levels.debug,
},
// 分类名称可以自定义
myTrace: {
// 支持多个追加器, 下面代码的含义是trace级别的日志, 控制台打印, 同时输出到文件
appenders: ["trace", "console"],
// 定义级别为trace
level: levels.trace,
},
// 分类名称可以自定义
myDebug: {
// 支持多个追加器, 下面代码的含义是debug级别的日志, 控制台打印, 同时输出到文件
appenders: ["debug", "console"],
// 定义级别为debug
level: levels.debug,
},
// 分类名称可以自定义
myInfo: {
// 支持多个追加器, 下面代码的含义是info级别的日志, 控制台打印, 同时输出到文件
appenders: ["info", "console"],
// 定义级别为info
level: levels.info,
},
// 分类名称可以自定义
myWarn: {
// 支持多个追加器, 下面代码的含义是warn级别的日志, 控制台打印, 同时输出到文件
appenders: ["warn", "console"],
// 定义级别为warn
level: levels.warn,
},
// 分类名称可以自定义
myError: {
// 支持多个追加器, 下面代码的含义是error级别的日志, 控制台打印, 同时输出到文件
appenders: ["error", "console"],
// 定义级别为error
level: levels.error,
},
// 分类名称可以自定义
myFatal: {
// 支持多个追加器, 下面代码的含义是fatal级别的日志, 控制台打印, 同时输出到文件
appenders: ["fatal", "console"],
// 定义级别为fatal
level: levels.fatal,
},
},
});
// 定义相关的函数
/**
* trace 日志输出
* @param {string} content 输出的日志内容
*/
const trace = (content) => {
// getLogger的参数是我们之前定义的分类名称
const logger = log4js.getLogger("myTrace");
// 触发一个 trace 日志
logger.trace(content);
};
/**
* debug 日志输出
* @param {string} content 输出的日志内容
*/
const debug = (content) => {
// getLogger的参数是我们之前定义的分类名称
const logger = log4js.getLogger("myDebug");
// 触发一个 debug 日志
logger.debug(content);
};
/**
* info 日志输出
* @param {string} content 输出的日志内容
*/
const info = (content) => {
// getLogger的参数是我们之前定义的分类名称
const logger = log4js.getLogger("myInfo");
// 触发一个 info 日志
logger.info(content);
};
/**
* warn 日志输出
* @param {string} content 输出的日志内容
*/
const warn = (content) => {
// getLogger的参数是我们之前定义的分类名称
const logger = log4js.getLogger("myWarn");
// 触发一个 warn 日志
logger.warn(content);
};
/**
* error 日志输出
* @param {string} content 输出的日志内容
*/
const error = (content) => {
// getLogger的参数是我们之前定义的分类名称
const logger = log4js.getLogger("myError");
// 触发一个 error 日志
logger.error(content);
};
/**
* fatal 日志输出
* @param {string} content 输出的日志内容
*/
const fatal = (content) => {
// getLogger的参数是我们之前定义的分类名称
const logger = log4js.getLogger("myFatal");
// 触发一个 fatal 日志
logger.fatal(content);
};
// 导出
module.exports = {
trace,
debug,
info,
warn,
error,
fatal,
};