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' program .option('-l, --level [level]', 'Level log (debug/info/warn/error)') + .option('-f, --files [file...]', 'Files to parse. If not provided, the script will parse the latest log file from config)') .parse(process.argv) const excludedKeys = { @@ -62,27 +63,27 @@ run() function run () { return new Promise(async res => { - const logFiles = await readdir(CONFIG.STORAGE.LOG_DIR) - const lastLogFile = await getNewestFile(logFiles, CONFIG.STORAGE.LOG_DIR) + const files = await getFiles() - const path = join(CONFIG.STORAGE.LOG_DIR, lastLogFile) - console.log('Opening %s.', path) + for (const file of files) { + console.log('Opening %s.', file) - const stream = createReadStream(path) + const stream = createReadStream(file) - const rl = createInterface({ - input: stream - }) + const rl = createInterface({ + input: stream + }) - rl.on('line', line => { - const log = JSON.parse(line) - // Don't know why but loggerFormat does not remove splat key - Object.assign(log, { splat: undefined }) + rl.on('line', line => { + const log = JSON.parse(line) + // Don't know why but loggerFormat does not remove splat key + Object.assign(log, { splat: undefined }) - logLevels[log.level](log) - }) + logLevels[log.level](log) + }) - stream.once('close', () => res()) + stream.once('close', () => res()) + } }) } @@ -93,6 +94,15 @@ async function getNewestFile (files: string[], basePath: string) { return (sorted.length > 0) ? sorted[0].file : '' } +async function getFiles () { + if (program['files']) return program['files'] + + const logFiles = await readdir(CONFIG.STORAGE.LOG_DIR) + + const filename = await getNewestFile(logFiles, CONFIG.STORAGE.LOG_DIR) + return [ join(CONFIG.STORAGE.LOG_DIR, filename) ] +} + function toTimeFormat (time: string) { const timestamp = Date.parse(time) diff --git a/server/tests/api/live/live.ts b/server/tests/api/live/live.ts index 6d504f742..6a1f6e759 100644 --- a/server/tests/api/live/live.ts +++ b/server/tests/api/live/live.ts @@ -413,10 +413,10 @@ describe('Test live', function () { await testVideoResolutions(liveVideoId, resolutions) await stopFfmpeg(command) - await waitUntilLivePublished(servers[0].url, servers[0].accessToken, liveVideoId) - await waitJobs(servers) + await waitUntilLivePublished(servers[0].url, servers[0].accessToken, liveVideoId) + const bitrateLimits = { 720: 5000 * 1000, // 60FPS 360: 1100 * 1000, @@ -427,6 +427,7 @@ describe('Test live', function () { const resVideo = await getVideo(server.url, liveVideoId) const video: VideoDetails = resVideo.body + expect(video.state.id).to.equal(VideoState.PUBLISHED) expect(video.duration).to.be.greaterThan(1) expect(video.files).to.have.lengthOf(0) diff --git a/server/tests/api/server/follows.ts b/server/tests/api/server/follows.ts index 9233a210b..6467238cd 100644 --- a/server/tests/api/server/follows.ts +++ b/server/tests/api/server/follows.ts @@ -302,7 +302,7 @@ describe('Test follows', function () { }) it('Should upload a video on server 2 and 3 and propagate only the video of server 2', async function () { - this.timeout(35000) + this.timeout(60000) await uploadVideo(servers[1].url, servers[1].accessToken, { name: 'server2' }) await uploadVideo(servers[2].url, servers[2].accessToken, { name: 'server3' })