]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Fix log parser with multiple files
authorChocobozzz <me@florianbigard.com>
Tue, 12 Jul 2022 14:21:13 +0000 (16:21 +0200)
committerChocobozzz <me@florianbigard.com>
Tue, 12 Jul 2022 14:23:06 +0000 (16:23 +0200)
scripts/parse-log.ts

index 7a50d9f2fa3066401e8f43abc69bff071ad677e0..5a420a46c8c3c14290ceeddd91be3e2f33b7f4ed 100755 (executable)
@@ -76,44 +76,48 @@ run()
   .then(() => process.exit(0))
   .catch(err => console.error(err))
 
-function run () {
-  return new Promise<void>(async res => {
-    const files = await getFiles()
+async function run () {
+  const files = await getFiles()
 
-    for (const file of files) {
-      if (file === 'peertube-audit.log') continue
+  for (const file of files) {
+    if (file === 'peertube-audit.log') continue
 
-      console.log('Opening %s.', file)
-
-      const stream = createReadStream(file)
+    await readFile(file)
+  }
+}
 
-      const rl = createInterface({
-        input: stream
-      })
+function readFile (file: string) {
+  console.log('Opening %s.', file)
 
-      rl.on('line', line => {
-        try {
-          const log = JSON.parse(line)
-          if (options.tags && !containsTags(log.tags, options.tags)) {
-            return
-          }
+  const stream = createReadStream(file)
 
-          if (options.notTags && containsTags(log.tags, options.notTags)) {
-            return
-          }
+  const rl = createInterface({
+    input: stream
+  })
 
-          // Don't know why but loggerFormat does not remove splat key
-          Object.assign(log, { splat: undefined })
+  return new Promise<void>(res => {
+    rl.on('line', line => {
+      try {
+        const log = JSON.parse(line)
+        if (options.tags && !containsTags(log.tags, options.tags)) {
+          return
+        }
 
-          logLevels[log.level](log)
-        } catch (err) {
-          console.error('Cannot parse line.', inspect(line))
-          throw err
+        if (options.notTags && containsTags(log.tags, options.notTags)) {
+          return
         }
-      })
 
-      stream.once('close', () => res())
-    }
+        // Don't know why but loggerFormat does not remove splat key
+        Object.assign(log, { splat: undefined })
+
+        logLevels[log.level](log)
+      } catch (err) {
+        console.error('Cannot parse line.', inspect(line))
+        throw err
+      }
+    })
+
+    stream.once('close', () => res())
   })
 }