UNPKG

@sync-in/server

Version:

The secure, open-source platform for file storage, sharing, collaboration, and sync

69 lines (68 loc) 2.6 kB
/* * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com> * This file is part of Sync-in | The open source file sync and share solution * See the LICENSE file for licensing details */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "configLogger", { enumerable: true, get: function() { return configLogger; } }); const configLogger = (loggerConfig)=>({ level: loggerConfig.level, autoLogging: true, quietReqLogger: true, customProps: (req)=>({ context: 'HTTP', user: req.user, userAgent: req.headers['user-agent'] }), customSuccessMessage: (req, res)=>{ return `${req.method} ${req.url} (${req.protocol.toUpperCase()}/${req['httpVersion']} ${res.statusCode}) ${req.ip}`; }, customErrorMessage: (req, res)=>{ return `${req.method} ${req.url} (${req.protocol.toUpperCase()}/${req['httpVersion']} ${res.statusCode}) ${req.ip}`; }, customLogLevel: (_req, res, err)=>{ if (res.statusCode >= 400 && res.statusCode < 500) { return 'warn'; } else if (res.statusCode >= 500 || err) { return 'error'; } return 'info'; }, customErrorObject: (_req, _res, _error, val)=>{ // avoid logging object error for 404 status return val.res.statusCode === 404 ? null : val; }, serializers: { res (reply) { return { contentLength: reply.raw['_contentLength'] }; }, req () { return undefined; } }, transport: { target: 'pino-pretty', options: { ignore: 'hostname,context,reqId,req,res,user,userAgent,responseTime', hideObject: false, singleLine: false, colorize: loggerConfig.colorize, colorizeObjects: false, translateTime: 'SYS:yyyy-mm-dd HH:MM:ss', messageFormat: `[{context}]{if user} <{user}> {end} ${loggerConfig.colorize ? '\x1b[37m' : ''}{msg}{if res} ({res.contentLength} bytes in {responseTime}ms) {userAgent}{end}{if reqId} | {reqId}{end}`, destination: loggerConfig.stdout ? 1 : loggerConfig.filePath, mkdir: true, sync: false } } }); //# sourceMappingURL=config.logger.js.map