Я использую Winston для сохранения логов, пока что сохраняю только то, что могу сделать console.log
, а также получаю полезную нагрузку запроса и полезную нагрузку ответа.
Мне нужно использовать это как трекер в случае ошибки.
- Каждый пользователь использует токен.
- И он может вызывать любой Api, который он хочет. Пример:
Пользователь с токеном "XXXXXX" входит в систему и получает доступ к этим API (/ api / getItem, / api / update / item /, /api.delete/item) и в / api / delete / item, происходит и ошибка.
Отсюда я хочу сделать следующее: сохранить файл в папке журнала с именем токена, а внутри этого файла я хочу сохранить все действие, и это было так, и как-то я хочу сохранить это. [[Пользователь с токеном "XXXXXX" входит в систему и получает доступ к этим API (/ api / getItem, / api / update / item /, /api.delete/item) и в элементе / api / delete /, происходит и ошибка.]]
Пока у меня есть этот код
app. js
require("dotenv").config();
const express = require("express");
const app = express();
const userRouter = require("./config/api/users/user.router");
const logger = require("./config/logger");
app.use(express.json());
app.use((req,res, next)=>
{
logger.info(req.body);
let oldSend = res.send;
res.send = function(data){
//logger.info(data);
logger.info(JSON.parse(data));
oldSend.apply(res,arguments);
}
next();
});
app.use("/api/users",userRouter);
app.listen(process.env.APP_PORT, ()=>{
logger.error("server up and running on port: " + process.env.APP_PORT);
});
и мой файл логгера:
const {createLogger,transports,format} = require('winston');
// require('winston-mongodb').MongoDB;
const logger = createLogger({
transports: [
// new transports.MongoDB({
// db: process.env.MONGO_DB,
// level: 'error',
// options: {
// useUnifiedTopology: true
// }
// }),
new transports.File({
filename: "error.log",
level: "error",
format: format.combine(format.timestamp(), format.json())
}),
new transports.File({
filename: "info.log",
level: "info",
format: format.combine(format.timestamp(), format.json())
}),
]
});
module.exports = logger;
И я не знаю, что делать отсюда, так как я очень новичок с узлом, я едва понимаю основы c! Будет очень полезно, если кто-нибудь протянет мне руку, большое спасибо!