mirror of https://github.com/Chocobozzz/PeerTube
Parse log script can take files as args
parent
0d9c2cc0a2
commit
e078371807
|
@ -12,6 +12,7 @@ import { mtimeSortFilesDesc } from '../shared/core-utils/logs/logs'
|
||||||
|
|
||||||
program
|
program
|
||||||
.option('-l, --level [level]', 'Level log (debug/info/warn/error)')
|
.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)
|
.parse(process.argv)
|
||||||
|
|
||||||
const excludedKeys = {
|
const excludedKeys = {
|
||||||
|
@ -62,27 +63,27 @@ run()
|
||||||
|
|
||||||
function run () {
|
function run () {
|
||||||
return new Promise(async res => {
|
return new Promise(async res => {
|
||||||
const logFiles = await readdir(CONFIG.STORAGE.LOG_DIR)
|
const files = await getFiles()
|
||||||
const lastLogFile = await getNewestFile(logFiles, CONFIG.STORAGE.LOG_DIR)
|
|
||||||
|
|
||||||
const path = join(CONFIG.STORAGE.LOG_DIR, lastLogFile)
|
for (const file of files) {
|
||||||
console.log('Opening %s.', path)
|
console.log('Opening %s.', file)
|
||||||
|
|
||||||
const stream = createReadStream(path)
|
const stream = createReadStream(file)
|
||||||
|
|
||||||
const rl = createInterface({
|
const rl = createInterface({
|
||||||
input: stream
|
input: stream
|
||||||
})
|
})
|
||||||
|
|
||||||
rl.on('line', line => {
|
rl.on('line', line => {
|
||||||
const log = JSON.parse(line)
|
const log = JSON.parse(line)
|
||||||
// Don't know why but loggerFormat does not remove splat key
|
// Don't know why but loggerFormat does not remove splat key
|
||||||
Object.assign(log, { splat: undefined })
|
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 : ''
|
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) {
|
function toTimeFormat (time: string) {
|
||||||
const timestamp = Date.parse(time)
|
const timestamp = Date.parse(time)
|
||||||
|
|
||||||
|
|
|
@ -413,10 +413,10 @@ describe('Test live', function () {
|
||||||
await testVideoResolutions(liveVideoId, resolutions)
|
await testVideoResolutions(liveVideoId, resolutions)
|
||||||
|
|
||||||
await stopFfmpeg(command)
|
await stopFfmpeg(command)
|
||||||
await waitUntilLivePublished(servers[0].url, servers[0].accessToken, liveVideoId)
|
|
||||||
|
|
||||||
await waitJobs(servers)
|
await waitJobs(servers)
|
||||||
|
|
||||||
|
await waitUntilLivePublished(servers[0].url, servers[0].accessToken, liveVideoId)
|
||||||
|
|
||||||
const bitrateLimits = {
|
const bitrateLimits = {
|
||||||
720: 5000 * 1000, // 60FPS
|
720: 5000 * 1000, // 60FPS
|
||||||
360: 1100 * 1000,
|
360: 1100 * 1000,
|
||||||
|
@ -427,6 +427,7 @@ describe('Test live', function () {
|
||||||
const resVideo = await getVideo(server.url, liveVideoId)
|
const resVideo = await getVideo(server.url, liveVideoId)
|
||||||
const video: VideoDetails = resVideo.body
|
const video: VideoDetails = resVideo.body
|
||||||
|
|
||||||
|
expect(video.state.id).to.equal(VideoState.PUBLISHED)
|
||||||
expect(video.duration).to.be.greaterThan(1)
|
expect(video.duration).to.be.greaterThan(1)
|
||||||
expect(video.files).to.have.lengthOf(0)
|
expect(video.files).to.have.lengthOf(0)
|
||||||
|
|
||||||
|
|
|
@ -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 () {
|
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[1].url, servers[1].accessToken, { name: 'server2' })
|
||||||
await uploadVideo(servers[2].url, servers[2].accessToken, { name: 'server3' })
|
await uploadVideo(servers[2].url, servers[2].accessToken, { name: 'server3' })
|
||||||
|
|
Loading…
Reference in New Issue