add middleware writeLog
This commit is contained in:
parent
9e5a7b1dd1
commit
a90dfeee13
|
|
@ -0,0 +1,14 @@
|
||||||
|
import type { HttpContextContract } from "@ioc:Adonis/Core/HttpContext";
|
||||||
|
import { loggerAPI } from "App/utils/Logger";
|
||||||
|
|
||||||
|
export default class Logger {
|
||||||
|
public async handle(
|
||||||
|
{ request, response }: HttpContextContract,
|
||||||
|
next: () => Promise<void>
|
||||||
|
) {
|
||||||
|
// code for middleware goes here. ABOVE THE NEXT CALL
|
||||||
|
await next();
|
||||||
|
|
||||||
|
loggerAPI(request, response, request.url());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
fdgdfg
|
|
||||||
fksdfk trace ak
|
|
||||||
Power Failure
|
|
||||||
ERROR: % Incomplete command
|
|
||||||
ERROR: % Incomplete command
|
|
||||||
sdfhskd ERROR PVDM3- invalid |IOSXE_RP_NV-3-NV_ACCESS_FAIL|IOSXE_RP_NV-3- shjkg
|
|
||||||
sdfhskd ERROR PVDM3- invalid |IOSXE_RP_NV-3-NV_ACCESS_FAIL|IOSXE_RP_NV-3- shjkg
|
|
||||||
invalid |IOSXE_RP_NV-3-NV_ACCESS_FAIL|IOSXE_RP_NV-3- shjkg
|
|
||||||
invalid |IOSXE_RP_NV-3-NV_ACCESS_FAIL|IOSXE_RP_NV-3- shjkg
|
|
||||||
invalid |IOSXE_RP_NV-3-NV_ACCESS_FAIL|IOSXE_RP_NV-3- shjkg
|
|
||||||
invalid |IOSXE_RP_NV-3-NV_ACCESS_FAIL|IOSXE_RP_NV-3- shjkg
|
|
||||||
sdfhskd ERROR PVDM3- invalid |IOSXE_RP_NV-3-NV_ACCESS_FAIL|IOSXE_RP_NV-3- shjkg
|
|
||||||
invalid |IOSXE_RP_NV-3-NV_ACCESS_FAIL|IOSXE_RP_NV-3- shjkg
|
|
||||||
invalid |IOSXE_RP_NV-3-NV_ACCESS_FAIL|IOSXE_RP_NV-3- shjkg
|
|
||||||
invalid |IOSXE_RP_NV-3-NV_ACCESS_FAIL|IOSXE_RP_NV-3- shjkg
|
|
||||||
invalid |IOSXE_RP_NV-3-NV_ACCESS_FAIL|IOSXE_RP_NV-3- shjkg
|
|
||||||
invalid |IOSXE_RP_NV-3-NV_ACCESS_FAIL|IOSXE_RP_NV-3- shj
|
|
||||||
invalid |IOSXE_RP_NV-3-NV_ACCESS_FAIL|IOSXE_RP_NV-3- shj
|
|
||||||
invalid |IOSXE_RP_NV-3-NV_ACCESS_FAIL|IOSXE_RP_NV-3- shj pak_debug_init sdh
|
|
||||||
abc
|
|
||||||
123 PVDM3- hui 800G2-POE-2
|
|
||||||
anfasll ak shflks as klhfalk la EHWIC- fsjklfjkl
|
|
||||||
anfasll ak shflks as klhfalk la EHWIC- fsjklfjkl
|
|
||||||
anfasll ak shflks as klhfalk la EHWIC- fsjklfjkl
|
|
||||||
123 PVDM3- hui 800G2-POE-2
|
|
||||||
123 PVDM3- hui 800G2-POE-2
|
|
||||||
dfgkfdjkhlfdhkhjjkhjgf
|
|
||||||
sdfsd DM3- hui 800G2-POE-
|
|
||||||
123 PVDM3- hui 800G2-POE-2
|
|
||||||
800G2-POE-2
|
|
||||||
anfasll ak shflks as klhfalk la EHWIC- fsjklfjkl
|
|
||||||
800G2-POE-2
|
|
||||||
anfasll ak shflks as klhfalk la EHWIC- fsjklfjkl
|
|
||||||
800G2-POE-2
|
|
||||||
anfasll ak shflks as klhfalk la EHWIC- fsjklfjkl
|
|
||||||
800G2-POE-2
|
|
||||||
800G2-POE-2
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
adfasf
|
|
||||||
anfasll ak shflks as klhfalk la EHWIC- fsjl
|
|
||||||
123 PVDM3- hui 800G2-POE-2
|
|
||||||
sdhgksd sjk hk error
|
|
||||||
abc 123 fail
|
|
||||||
abc 123 fail
|
|
||||||
sdhgksd sjk hk error
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
adfasf
|
|
||||||
anfasll ak shflks as klhfalk la EHWIC- fsjl
|
|
||||||
123 PVDM3- hui 800G2-POE-2
|
|
||||||
sdhgksd sjk hk error
|
|
||||||
abc 123 fail
|
|
||||||
abc 123 fail
|
|
||||||
sdhgksd sjk hk error
|
|
||||||
123 PVDM3- hui 800G2-POE-2
|
|
||||||
|
|
@ -0,0 +1,59 @@
|
||||||
|
import fs from 'fs';
|
||||||
|
import moment from "moment";
|
||||||
|
|
||||||
|
|
||||||
|
const shortenStringsInObject = (obj, maxLength) => {
|
||||||
|
// Kiểm tra nếu obj không phải là một đối tượng hoặc maxLength không phải là một số
|
||||||
|
if (typeof obj !== 'object' || typeof maxLength !== 'number') {
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Duyệt qua các thuộc tính của đối tượng
|
||||||
|
for (const key in obj) {
|
||||||
|
if (obj.hasOwnProperty(key)) {
|
||||||
|
// Kiểm tra nếu thuộc tính là một chuỗi và độ dài của chuỗi lớn hơn maxLength
|
||||||
|
if (typeof obj[key] === 'string' && obj[key].length > maxLength) {
|
||||||
|
// Rút ngắn chuỗi lại maxLength ký tự
|
||||||
|
obj[key] = obj[key].substring(0, maxLength);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function loggerAPI(request, response, location) {
|
||||||
|
let old_data = "";
|
||||||
|
let body = shortenStringsInObject(response.getBody(), 300)
|
||||||
|
try {
|
||||||
|
const fileName =
|
||||||
|
"./app/store/logsAPI/" +
|
||||||
|
moment(Date.now()).format("DD_MM_YYYY").toString() +
|
||||||
|
".log";
|
||||||
|
|
||||||
|
let logInfo =
|
||||||
|
"\n\n[" +
|
||||||
|
moment(Date.now()).format("D/M/YY-HH:mm:ss") +
|
||||||
|
"] - " +
|
||||||
|
response.getStatus() +
|
||||||
|
" - " +
|
||||||
|
location +
|
||||||
|
"\n------------PAYLOAD-----------\n" +
|
||||||
|
JSON.stringify(request.all()) +
|
||||||
|
"\n--------------DATA-------------\n" +
|
||||||
|
JSON.stringify(body) +
|
||||||
|
"\n-------------------------------";
|
||||||
|
|
||||||
|
fs.exists(fileName, async (exists) => {
|
||||||
|
if (exists) {
|
||||||
|
old_data = await fs.readFileSync(fileName, "utf8");
|
||||||
|
fs.writeFileSync(fileName, old_data + logInfo);
|
||||||
|
} else {
|
||||||
|
fs.writeFileSync(fileName, old_data + logInfo);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
response.status(500).send("CAN'T WRITE LOG");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -41,4 +41,5 @@ Server.middleware.register([
|
||||||
*/
|
*/
|
||||||
Server.middleware.registerNamed({
|
Server.middleware.registerNamed({
|
||||||
checkToken: () => import('App/Middleware/CheckToken'),
|
checkToken: () => import('App/Middleware/CheckToken'),
|
||||||
|
writeLog: () => import('App/Middleware/Logger')
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -198,29 +198,32 @@ runtimeCheckLogs(Env.get("FOLDER_LOGS"));
|
||||||
// }, 2000);
|
// }, 2000);
|
||||||
|
|
||||||
//ERP get index serial number
|
//ERP get index serial number
|
||||||
|
|
||||||
Route.post(
|
Route.post(
|
||||||
"/api/getIndexSerialNumber",
|
"/api/getIndexSerialNumber",
|
||||||
"ErpsController.getIndexSerialNumber"
|
"ErpsController.getIndexSerialNumber"
|
||||||
).middleware("checkToken");
|
).middleware("checkToken").middleware("writeLog");
|
||||||
|
|
||||||
Route.post("/api/getParagraph", "ErpsController.getParagraph").middleware(
|
Route.post("/api/getParagraph", "ErpsController.getParagraph").middleware(
|
||||||
"checkToken"
|
"checkToken"
|
||||||
);
|
).middleware("writeLog");
|
||||||
|
|
||||||
//Users
|
//Users
|
||||||
Route.post("/api/account/createUser", "UsersController.create");
|
Route.post("/api/account/createUser", "UsersController.create").middleware("writeLog");
|
||||||
Route.post("/api/account/checkLogin", "UsersController.checkLogin");
|
|
||||||
|
Route.post("/api/account/checkLogin", "UsersController.checkLogin").middleware("writeLog");
|
||||||
|
|
||||||
//Log
|
//Log
|
||||||
Route.get("/api/log/showLog/:name?", "LogsController.showLog");
|
Route.get("/api/log/showLog/:name?", "LogsController.showLog").middleware("writeLog");
|
||||||
|
|
||||||
Route.get("/api/getAllLogDetect", "LogsController.getAllLogDetect");
|
Route.get("/api/getAllLogDetect", "LogsController.getAllLogDetect").middleware("writeLog");
|
||||||
|
|
||||||
//Key-Value
|
//Key-Value
|
||||||
Route.post("/api/getKeyValue", "ValuesController.getKeyValue");
|
Route.post("/api/getKeyValue", "ValuesController.getKeyValue").middleware("writeLog");
|
||||||
|
|
||||||
Route.post("/api/deleteValue", "ValuesController.destroy");
|
Route.post("/api/deleteValue", "ValuesController.destroy").middleware("writeLog");
|
||||||
|
|
||||||
Route.post("/api/addValue", "ValuesController.create");
|
Route.post("/api/addValue", "ValuesController.create").middleware("writeLog");
|
||||||
|
|
||||||
Route.post("/api/backupProduct", async ({ request, response }) => {
|
Route.post("/api/backupProduct", async ({ request, response }) => {
|
||||||
try {
|
try {
|
||||||
|
|
@ -228,25 +231,43 @@ Route.post("/api/backupProduct", async ({ request, response }) => {
|
||||||
const res = await axios.post(
|
const res = await axios.post(
|
||||||
"https://logs.danielvu.com/api/getIndexSerialNumber",
|
"https://logs.danielvu.com/api/getIndexSerialNumber",
|
||||||
{ from: date, to: date },
|
{ from: date, to: date },
|
||||||
{ headers: { Authorization: request.headers().authorization?.replace(/"/g, "") } }
|
{
|
||||||
|
headers: {
|
||||||
|
Authorization: request.headers().authorization?.replace(/"/g, ""),
|
||||||
|
},
|
||||||
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
res.data.map((obj, index)=>{
|
res.data.map((obj, index) => {
|
||||||
res.data[index] = {
|
res.data[index] = {
|
||||||
PID:res.data[index].PID,
|
PID: res.data[index].PID,
|
||||||
SN:res.data[index].SN,
|
SN: res.data[index].SN,
|
||||||
VID:res.data[index].VID,
|
VID: res.data[index].VID,
|
||||||
line:res.data[index].line.join(","),
|
line: res.data[index].line.join(","),
|
||||||
file:res.data[index].fileName,
|
file: res.data[index].fileName,
|
||||||
warehouse:res.data[index].warehouse
|
warehouse: res.data[index].warehouse,
|
||||||
}
|
};
|
||||||
})
|
});
|
||||||
const addProduct = await Product.createMany(res.data)
|
const addProduct = await Product.createMany(res.data);
|
||||||
// console.log(addProduct)
|
// console.log(addProduct)
|
||||||
response.status(200).send("Add "+res.data.length+" success!");
|
response.status(200).send("Add " + res.data.length + " success!");
|
||||||
await sendMessToZulip("stream", "networkToolBot", "Log service", "Backup product "+date+" success with "+res.data.length+" products")
|
await sendMessToZulip(
|
||||||
|
"stream",
|
||||||
|
"networkToolBot",
|
||||||
|
"Log service",
|
||||||
|
"Backup product " +
|
||||||
|
date +
|
||||||
|
" success with " +
|
||||||
|
res.data.length +
|
||||||
|
" products"
|
||||||
|
);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
response.status(500).send(error);
|
response.status(500).send(error);
|
||||||
await sendMessToZulip("stream", "networkToolBot", "Log service", "Backup product fail. Please check!")
|
await sendMessToZulip(
|
||||||
|
"stream",
|
||||||
|
"networkToolBot",
|
||||||
|
"Log service",
|
||||||
|
"Backup product fail. Please check!"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
});
|
}).middleware("writeLog");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue