log filter

This commit is contained in:
seb
2026-07-12 18:34:59 +02:00
parent 917930d0fa
commit 3ca6e894ab
3 changed files with 33 additions and 11 deletions

1
.gitignore vendored
View File

@@ -2,3 +2,4 @@ node_modules/
.env
certs/
logs/
capturedDataReference

1
.npmrc
View File

@@ -1 +0,0 @@
loglevel=silent

View File

@@ -35,6 +35,25 @@ function truncateUrl(url) {
return `${url.slice(0, CONSOLE_URL_MAX_LENGTH)}...`;
}
const lastInitState = { url: '', result: '', timestamp: 0 };
function shouldLogInit(url, statusCode, durationMs, responseBody) {
if (statusCode !== 200) return true;
if (durationMs > 400) return true;
const now = Date.now();
const timeSinceLast = now - lastInitState.timestamp;
if (timeSinceLast < 30_000 && url === lastInitState.url && responseBody === lastInitState.result) {
return false;
}
lastInitState.url = url;
lastInitState.result = responseBody;
lastInitState.timestamp = now;
return true;
}
function formatBody(buffer) {
if (!buffer.length) {
return '(empty)';
@@ -68,6 +87,9 @@ const loggedJtlHandler = async (req, res) => {
const responseBody = formatBody(responseBuffer);
const durationMs = Date.now() - started;
const isInit = req.url.startsWith('/api/v1/init');
if (!isInit || shouldLogInit(req.url, res.statusCode, durationMs, responseBody)) {
logger.info(`${req.socket.remoteAddress} ${req.method} ${truncateUrl(req.url)} ${res.statusCode} ${durationMs}ms`);
logRequest({
@@ -78,6 +100,7 @@ const loggedJtlHandler = async (req, res) => {
durationMs,
response: responseBody,
});
}
};
const httpsServer = https.createServer(
@@ -102,7 +125,6 @@ async function start() {
logger.info(`Certificate: ${certPath}`);
logger.info(`Pairing code: ${PAIRING_CODE}`);
logger.info(`Auth token: ${AUTH_TOKEN}`);
logger.info('Import cert.pem into JTL POS trust store if required.');
});
}