1
This commit is contained in:
105
tool/logs.js
Normal file
105
tool/logs.js
Normal file
@@ -0,0 +1,105 @@
|
||||
const dayjs = require("dayjs");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
let formatText = {
|
||||
request: function (req) {
|
||||
let logText = new String();
|
||||
let method = req.method;
|
||||
//访问方法
|
||||
logText += "request method: " + method + "\n";
|
||||
//请求原始地址
|
||||
logText += "request originalUrl: " + req.originalUrl + "\n";
|
||||
//客户端ip
|
||||
logText += "request client ip: " + req.ip + "\n";
|
||||
|
||||
//请求参数
|
||||
if (method === "GET") {
|
||||
logText += "request query: " + JSON.stringify(req.query) + "\n";
|
||||
} else {
|
||||
logText += "request body: " + "\n" + JSON.stringify(req.body) + "\n";
|
||||
}
|
||||
|
||||
return logText;
|
||||
},
|
||||
|
||||
handle: (info) => {
|
||||
let logText = new String();
|
||||
//响应日志开始
|
||||
logText += "\n" + `***************info log start ***************日志记录时间: ${dayjs().format("YYYY.MM.DD HH:mm:ss")}` + "\n";
|
||||
//响应内容
|
||||
logText += "\n" + info + "\n";
|
||||
//响应日志结束
|
||||
logText += "*************** info log end ***************************************************************************" + "\n";
|
||||
return logText;
|
||||
},
|
||||
error: (ctx, err) => {
|
||||
let logText = new String();
|
||||
//错误信息开始
|
||||
logText += "\n" + `*************** error log start ***************日志记录时间: ${dayjs().format("YYYY.MM.DD HH:mm:ss")}` + "\n";
|
||||
//添加请求日志
|
||||
logText += formatText.request(ctx.request);
|
||||
//错误名称
|
||||
logText += "err name: " + err.name + "\n";
|
||||
//错误信息
|
||||
logText += "err message: " + err.message + "\n";
|
||||
//错误详情
|
||||
logText += "err stack: " + err.stack + "\n";
|
||||
//错误信息结束
|
||||
logText += "*************** error log end ***************************************************************************" + "\n";
|
||||
return logText;
|
||||
},
|
||||
};
|
||||
|
||||
const writeLog = (msg, type) => {
|
||||
console.log(msg);
|
||||
|
||||
let pathDir = path.join(__dirname, "../logs");
|
||||
if (!fs.existsSync(pathDir)) {
|
||||
fs.mkdirSync(pathDir);
|
||||
}
|
||||
|
||||
let fileName = dayjs().format("log_YYYY.MM.DD.log");
|
||||
|
||||
if (type === "error") {
|
||||
fileName = dayjs().format("logError_YYYY.MM.DD.log");
|
||||
}
|
||||
|
||||
let fileFullPath = path.join(pathDir, fileName);
|
||||
|
||||
if (fs.existsSync(fileFullPath)) {
|
||||
fs.appendFileSync(fileFullPath, msg);
|
||||
} else {
|
||||
fs.writeFileSync(fileFullPath, msg);
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
//封装操作日志
|
||||
log: (msg, data) => {
|
||||
let msgTotal = msg;
|
||||
|
||||
if (data) {
|
||||
if (typeof data === "object") {
|
||||
msgTotal += ":" + JSON.stringify(data);
|
||||
} else {
|
||||
msgTotal += ":" + data;
|
||||
}
|
||||
}
|
||||
|
||||
let msgStr = formatText.handle(msgTotal);
|
||||
writeLog(msgStr);
|
||||
},
|
||||
|
||||
errError(msg) {
|
||||
let msgStr = formatText.handle(msg);
|
||||
writeLog(msgStr, "error");
|
||||
},
|
||||
//封装错误日志
|
||||
ctxError: (error, ctx) => {
|
||||
if (ctx && error) {
|
||||
let msg = formatText.error(ctx, error);
|
||||
writeLog(msg, "error");
|
||||
}
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user