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({
|
||||
checkToken: () => import('App/Middleware/CheckToken'),
|
||||
writeLog: () => import('App/Middleware/Logger')
|
||||
})
|
||||
|
|
|
|||
|
|
@ -198,29 +198,32 @@ runtimeCheckLogs(Env.get("FOLDER_LOGS"));
|
|||
// }, 2000);
|
||||
|
||||
//ERP get index serial number
|
||||
|
||||
Route.post(
|
||||
"/api/getIndexSerialNumber",
|
||||
"ErpsController.getIndexSerialNumber"
|
||||
).middleware("checkToken");
|
||||
).middleware("checkToken").middleware("writeLog");
|
||||
|
||||
Route.post("/api/getParagraph", "ErpsController.getParagraph").middleware(
|
||||
"checkToken"
|
||||
);
|
||||
).middleware("writeLog");
|
||||
|
||||
//Users
|
||||
Route.post("/api/account/createUser", "UsersController.create");
|
||||
Route.post("/api/account/checkLogin", "UsersController.checkLogin");
|
||||
Route.post("/api/account/createUser", "UsersController.create").middleware("writeLog");
|
||||
|
||||
Route.post("/api/account/checkLogin", "UsersController.checkLogin").middleware("writeLog");
|
||||
|
||||
//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
|
||||
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 }) => {
|
||||
try {
|
||||
|
|
@ -228,25 +231,43 @@ Route.post("/api/backupProduct", async ({ request, response }) => {
|
|||
const res = await axios.post(
|
||||
"https://logs.danielvu.com/api/getIndexSerialNumber",
|
||||
{ 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] = {
|
||||
PID:res.data[index].PID,
|
||||
SN:res.data[index].SN,
|
||||
VID:res.data[index].VID,
|
||||
line:res.data[index].line.join(","),
|
||||
file:res.data[index].fileName,
|
||||
warehouse:res.data[index].warehouse
|
||||
}
|
||||
})
|
||||
const addProduct = await Product.createMany(res.data)
|
||||
PID: res.data[index].PID,
|
||||
SN: res.data[index].SN,
|
||||
VID: res.data[index].VID,
|
||||
line: res.data[index].line.join(","),
|
||||
file: res.data[index].fileName,
|
||||
warehouse: res.data[index].warehouse,
|
||||
};
|
||||
});
|
||||
const addProduct = await Product.createMany(res.data);
|
||||
// console.log(addProduct)
|
||||
response.status(200).send("Add "+res.data.length+" success!");
|
||||
await sendMessToZulip("stream", "networkToolBot", "Log service", "Backup product "+date+" success with "+res.data.length+" products")
|
||||
response.status(200).send("Add " + res.data.length + " success!");
|
||||
await sendMessToZulip(
|
||||
"stream",
|
||||
"networkToolBot",
|
||||
"Log service",
|
||||
"Backup product " +
|
||||
date +
|
||||
" success with " +
|
||||
res.data.length +
|
||||
" products"
|
||||
);
|
||||
} catch (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