diff options
Diffstat (limited to 'scripts/parse-log.ts')
-rwxr-xr-x | scripts/parse-log.ts | 40 |
1 files changed, 25 insertions, 15 deletions
diff --git a/scripts/parse-log.ts b/scripts/parse-log.ts index 58e052b9f..410da3c61 100755 --- a/scripts/parse-log.ts +++ b/scripts/parse-log.ts | |||
@@ -12,6 +12,7 @@ import { mtimeSortFilesDesc } from '../shared/core-utils/logs/logs' | |||
12 | 12 | ||
13 | program | 13 | program |
14 | .option('-l, --level [level]', 'Level log (debug/info/warn/error)') | 14 | .option('-l, --level [level]', 'Level log (debug/info/warn/error)') |
15 | .option('-f, --files [file...]', 'Files to parse. If not provided, the script will parse the latest log file from config)') | ||
15 | .parse(process.argv) | 16 | .parse(process.argv) |
16 | 17 | ||
17 | const excludedKeys = { | 18 | const excludedKeys = { |
@@ -62,27 +63,27 @@ run() | |||
62 | 63 | ||
63 | function run () { | 64 | function run () { |
64 | return new Promise(async res => { | 65 | return new Promise(async res => { |
65 | const logFiles = await readdir(CONFIG.STORAGE.LOG_DIR) | 66 | const files = await getFiles() |
66 | const lastLogFile = await getNewestFile(logFiles, CONFIG.STORAGE.LOG_DIR) | ||
67 | 67 | ||
68 | const path = join(CONFIG.STORAGE.LOG_DIR, lastLogFile) | 68 | for (const file of files) { |
69 | console.log('Opening %s.', path) | 69 | console.log('Opening %s.', file) |
70 | 70 | ||
71 | const stream = createReadStream(path) | 71 | const stream = createReadStream(file) |
72 | 72 | ||
73 | const rl = createInterface({ | 73 | const rl = createInterface({ |
74 | input: stream | 74 | input: stream |
75 | }) | 75 | }) |
76 | 76 | ||
77 | rl.on('line', line => { | 77 | rl.on('line', line => { |
78 | const log = JSON.parse(line) | 78 | const log = JSON.parse(line) |
79 | // Don't know why but loggerFormat does not remove splat key | 79 | // Don't know why but loggerFormat does not remove splat key |
80 | Object.assign(log, { splat: undefined }) | 80 | Object.assign(log, { splat: undefined }) |
81 | 81 | ||
82 | logLevels[log.level](log) | 82 | logLevels[log.level](log) |
83 | }) | 83 | }) |
84 | 84 | ||
85 | stream.once('close', () => res()) | 85 | stream.once('close', () => res()) |
86 | } | ||
86 | }) | 87 | }) |
87 | } | 88 | } |
88 | 89 | ||
@@ -93,6 +94,15 @@ async function getNewestFile (files: string[], basePath: string) { | |||
93 | return (sorted.length > 0) ? sorted[0].file : '' | 94 | return (sorted.length > 0) ? sorted[0].file : '' |
94 | } | 95 | } |
95 | 96 | ||
97 | async function getFiles () { | ||
98 | if (program['files']) return program['files'] | ||
99 | |||
100 | const logFiles = await readdir(CONFIG.STORAGE.LOG_DIR) | ||
101 | |||
102 | const filename = await getNewestFile(logFiles, CONFIG.STORAGE.LOG_DIR) | ||
103 | return [ join(CONFIG.STORAGE.LOG_DIR, filename) ] | ||
104 | } | ||
105 | |||
96 | function toTimeFormat (time: string) { | 106 | function toTimeFormat (time: string) { |
97 | const timestamp = Date.parse(time) | 107 | const timestamp = Date.parse(time) |
98 | 108 | ||