import * as express from 'express'
-import { UserRight } from '../../../../shared/models/users'
-import { asyncMiddleware, authenticate, ensureUserHasRight } from '../../../middlewares'
-import { mtimeSortFilesDesc } from '../../../../shared/core-utils/logs/logs'
import { readdir, readFile } from 'fs-extra'
-import { AUDIT_LOG_FILENAME, MAX_LOGS_OUTPUT_CHARACTERS, LOG_FILENAME } from '../../../initializers/constants'
import { join } from 'path'
-import { getAuditLogsValidator, getLogsValidator } from '../../../middlewares/validators/logs'
+import { logger } from '@server/helpers/logger'
+import { mtimeSortFilesDesc } from '../../../../shared/core-utils/logs/logs'
import { LogLevel } from '../../../../shared/models/server/log-level.type'
+import { UserRight } from '../../../../shared/models/users'
import { CONFIG } from '../../../initializers/config'
-import { logger } from '@server/helpers/logger'
+import { AUDIT_LOG_FILENAME, LOG_FILENAME, MAX_LOGS_OUTPUT_CHARACTERS } from '../../../initializers/constants'
+import { asyncMiddleware, authenticate, ensureUserHasRight } from '../../../middlewares'
+import { getAuditLogsValidator, getLogsValidator } from '../../../middlewares/validators/logs'
const logsRouter = express.Router()
}
async function generateOutput (options: {
- startDateQuery: string,
- endDateQuery?: string,
- level: LogLevel,
+ startDateQuery: string
+ endDateQuery?: string
+ level: LogLevel
nameFilter: RegExp
}) {
const { startDateQuery, level, nameFilter } = options
if (nameFilter.exec(meta.file) === null) continue
const path = join(CONFIG.STORAGE.LOG_DIR, meta.file)
+ logger.debug('Opening %s to fetch logs.', path)
const result = await getOutputFromFile(path, startDate, endDate, level, currentSize)
if (!result.output) break
const output: any[] = []
for (let i = lines.length - 1; i >= 0; i--) {
- const line = lines[ i ]
+ const line = lines[i]
let log: any
try {
}
logTime = new Date(log.timestamp).getTime()
- if (logTime >= startTime && logTime <= endTime && logsLevel[ log.level ] >= logsLevel[ level ]) {
+ if (logTime >= startTime && logTime <= endTime && logsLevel[log.level] >= logsLevel[level]) {
output.push(log)
currentSize += line.length
}
function generateLogNameFilter (baseName: string) {
- return new RegExp('^' + baseName.replace(/\.log$/, '') + '\d*.log$')
+ return new RegExp('^' + baseName.replace(/\.log$/, '') + '\\d*.log$')
}