SYNC: improved log export

This commit is contained in:
SPRINX0\prochazka
2025-08-06 13:37:19 +02:00
committed by Diflow
parent d8eeeaaef6
commit 4c12cbd3cc

View File

@@ -28,22 +28,25 @@ function adjustRecentLogs() {
} }
} }
function prepareEntryForExport(entry) { function prepareEntryForExport(entry, lastEntry) {
return { return {
date: format(new Date(entry.time), 'yyyy-MM-dd'), date: format(new Date(entry.time), 'yyyy-MM-dd'),
time: format(new Date(entry.time), 'HH:mm:ss'), time: format(new Date(entry.time), 'HH:mm:ss'),
dtime: lastEntry ? entry.time - lastEntry.time : 0,
msgcode: entry.msgcode || '', msgcode: entry.msgcode || '',
message: entry.msg || '', message: entry.msg || '',
..._.omit(entry, ['time', 'msg', 'msgcode']), ..._.omit(entry, ['time', 'msg', 'msgcode']),
conid: entry.conid || '', conid: entry.conid || '',
database: entry.database || '', database: entry.database || '',
engine: entry.engine || '', engine: entry.engine || '',
ts: entry.time,
}; };
} }
async function copyAppLogsIntoFile(timeFrom, timeTo, fileName, prepareForExport) { async function copyAppLogsIntoFile(timeFrom, timeTo, fileName, prepareForExport) {
const writeStream = fs.createWriteStream(fileName); const writeStream = fs.createWriteStream(fileName);
let lastEntry = null;
for (const file of await getLogFiles(timeFrom, timeTo)) { for (const file of await getLogFiles(timeFrom, timeTo)) {
const readStream = fs.createReadStream(file); const readStream = fs.createReadStream(file);
const reader = new LineReader(readStream); const reader = new LineReader(readStream);
@@ -53,7 +56,10 @@ async function copyAppLogsIntoFile(timeFrom, timeTo, fileName, prepareForExport)
try { try {
const logEntry = JSON.parse(line); const logEntry = JSON.parse(line);
if (logEntry.time >= timeFrom && logEntry.time <= timeTo) { if (logEntry.time >= timeFrom && logEntry.time <= timeTo) {
writeStream.write(JSON.stringify(prepareForExport ? prepareEntryForExport(logEntry) : logEntry) + '\n'); writeStream.write(
JSON.stringify(prepareForExport ? prepareEntryForExport(logEntry, lastEntry) : logEntry) + '\n'
);
lastEntry = logEntry;
} }
} catch (e) { } catch (e) {
continue; continue;