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

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,16 +87,20 @@ const loggedJtlHandler = async (req, res) => {
const responseBody = formatBody(responseBuffer);
const durationMs = Date.now() - started;
logger.info(`${req.socket.remoteAddress} ${req.method} ${truncateUrl(req.url)} ${res.statusCode} ${durationMs}ms`);
const isInit = req.url.startsWith('/api/v1/init');
logRequest({
remoteAddress: req.socket.remoteAddress,
method: req.method,
url: req.url,
statusCode: res.statusCode,
durationMs,
response: responseBody,
});
if (!isInit || shouldLogInit(req.url, res.statusCode, durationMs, responseBody)) {
logger.info(`${req.socket.remoteAddress} ${req.method} ${truncateUrl(req.url)} ${res.statusCode} ${durationMs}ms`);
logRequest({
remoteAddress: req.socket.remoteAddress,
method: req.method,
url: req.url,
statusCode: res.statusCode,
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.');
});
}