mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-30 13:53:59 +00:00
SYNC: improved log export
This commit is contained in:
committed by
Diflow
parent
d8eeeaaef6
commit
4c12cbd3cc
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user