diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts index 1c2d4ebc..35545bc3 100644 --- a/packages/server/src/index.ts +++ b/packages/server/src/index.ts @@ -59,9 +59,6 @@ export class App { constructor() { this.app = express() - - // Add the expressRequestLogger middleware to log all requests - this.app.use(expressRequestLogger) } async initDatabase() { @@ -92,6 +89,9 @@ export class App { // Allow access from * this.app.use(cors()) + // Add the expressRequestLogger middleware to log all requests + this.app.use(expressRequestLogger) + if (process.env.FLOWISE_USERNAME && process.env.FLOWISE_PASSWORD) { const username = process.env.FLOWISE_USERNAME const password = process.env.FLOWISE_PASSWORD diff --git a/packages/server/src/utils/logger.ts b/packages/server/src/utils/logger.ts index 5d7ffedf..57d5f64a 100644 --- a/packages/server/src/utils/logger.ts +++ b/packages/server/src/utils/logger.ts @@ -57,43 +57,46 @@ const logger = createLogger({ * this.app.use(expressRequestLogger) */ export function expressRequestLogger(req: Request, res: Response, next: NextFunction): void { - const fileLogger = createLogger({ - format: combine(timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), format.json(), errors({ stack: true })), - defaultMeta: { - package: 'server', - request: { - method: req.method, - url: req.url, - body: req.body, - query: req.query, - params: req.params, - headers: req.headers - } - }, - transports: [ - new transports.File({ - filename: path.join(logDir, config.logging.express.filename ?? 'server-requests.log.jsonl'), - level: config.logging.express.level ?? 'debug' - }) - ] - }) + const unwantedLogURLs = ['/api/v1/node-icon/'] + if (req.url.includes('/api/v1/') && !unwantedLogURLs.some((url) => req.url.includes(url))) { + const fileLogger = createLogger({ + format: combine(timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), format.json(), errors({ stack: true })), + defaultMeta: { + package: 'server', + request: { + method: req.method, + url: req.url, + body: req.body, + query: req.query, + params: req.params, + headers: req.headers + } + }, + transports: [ + new transports.File({ + filename: path.join(logDir, config.logging.express.filename ?? 'server-requests.log.jsonl'), + level: config.logging.express.level ?? 'debug' + }) + ] + }) - const getRequestEmoji = (method: string) => { - const requetsEmojis: Record = { - GET: '⬇️', - POST: '⬆️', - PUT: '🖊', - DELETE: '❌' + const getRequestEmoji = (method: string) => { + const requetsEmojis: Record = { + GET: '⬇️', + POST: '⬆️', + PUT: '🖊', + DELETE: '❌' + } + + return requetsEmojis[method] || '?' } - return requetsEmojis[method] || '?' - } - - if (req.method !== 'GET') { - fileLogger.info(`${getRequestEmoji(req.method)} ${req.method} ${req.url}`) - logger.info(`${getRequestEmoji(req.method)} ${req.method} ${req.url}`) - } else { - fileLogger.http(`${getRequestEmoji(req.method)} ${req.method} ${req.url}`) + if (req.method !== 'GET') { + fileLogger.info(`${getRequestEmoji(req.method)} ${req.method} ${req.url}`) + logger.info(`${getRequestEmoji(req.method)} ${req.method} ${req.url}`) + } else { + fileLogger.http(`${getRequestEmoji(req.method)} ${req.method} ${req.url}`) + } } next()