tududi/backend/middleware/queryLogger.js
Chris 6fb87ac80a
Feat refactor tasks pt1 (#536)
* Refactor swagger docs

* Scaffold refactor

* Refactor crud tasks

* fixup! Refactor crud tasks

* Break down task layout

* fixup! Break down task layout

* fixup! fixup! Break down task layout

* Cleanup comments

* fixup! Cleanup comments

* Cleanup obsolete code

* Remove helpers
2025-11-15 14:02:06 +02:00

41 lines
931 B
JavaScript

const { sequelize } = require('../models');
let queryCount = 0;
let queryStartTime = null;
let queries = [];
const enableQueryLogging = () => {
sequelize.options.logging = (sql, timing) => {
queryCount++;
const timestamp = Date.now() - (queryStartTime || Date.now());
queries.push({
num: queryCount,
sql: sql.substring(0, 300),
time: timestamp,
});
console.log(
`[Query ${queryCount} @ ${timestamp}ms] ${sql.substring(0, 200)}...`
);
};
};
const resetQueryCounter = () => {
queryCount = 0;
queryStartTime = Date.now();
queries = [];
};
const getQueryStats = () => {
const duration = queryStartTime ? Date.now() - queryStartTime : 0;
return {
count: queryCount,
duration,
queries,
};
};
module.exports = {
enableQueryLogging,
resetQueryCounter,
getQueryStats,
};