UNPKG

@opengis/fastify-table

Version:

core-plugins

57 lines (46 loc) 1.65 kB
import pino from 'pino'; // import path from 'node:path'; import config from '../../../config.js'; import getRedis from '../redis/funcs/getRedis.js'; import redactionList from '../../../redactionList.js'; // utils import getHooks from './getHooks.js'; import serializers from './serializers.js'; import timestampWithTimeZone from './timestampWithTimeZone.js'; const isServer = process.argv[2]; const rclient2 = getRedis({ db: 2 }); if (!config.log) config.log = {}; const level = config.log?.level || process.env.PINO_LOG_LEVEL || 'info'; console.log(`log level: ${level}`); const options = { level, // minimal log level to write timestamp: () => `,"time":"${timestampWithTimeZone()}"`, // timestamp as isostring hooks: getHooks(), serializers, // custom log params transport: { targets: [{ target: './createFileStream.js', // path.resolve('utils/createFileStream.js') }, { level: 'error', target: 'pino/file', options: { destination: 1 }, }, ], }, redact: redactionList, }; const logger = pino(options); logger.file = function userFile(logfolder, msg, req) { logger.info({ logfolder, ...(typeof msg === 'string' ? { msg } : msg) }, req); }; if (config.debug) { logger.file('test/redaction', { clientId: 'should be redacted', clientSecret: 'should be redacted' }); } logger.metrics = function metrics(key, val, dbName) { const dbname = dbName || config.pg?.database; if (!dbname && !isServer) return; if (!config.redis) return; rclient2.hincrby(`${dbname}:system_metrics`, key, val || 1); }; export default logger;