UNPKG

envio

Version:

A latency and sync speed optimized, developer friendly blockchain data indexer.

107 lines (93 loc) 2.51 kB
// Generated by ReScript, PLEASE EDIT WITH CARE import * as Pino from "pino"; import * as Utils from "../Utils.res.mjs"; import * as PinoPretty from "pino-pretty"; import * as Stdlib_Option from "@rescript/runtime/lib/es6/Stdlib_Option.js"; import EcsPinoFormat from "@elastic/ecs-pino-format"; function createPinoMessage(message) { return message; } function createPinoMessageWithError(message, err) { return { msg: message, err: Utils.prettifyExn(err) }; } function makeTransportOptions(v) { return v; } let Transport = { makeTransportOptions: makeTransportOptions }; function createChildParams(v) { return v; } function make(prim) { return EcsPinoFormat(prim); } let ECS = { make: make }; function makeFormatter(logLevels) { let customColors = "fatal:bgRed,error:red,warn:yellow,info:green,udebug:bgBlue,uinfo:bgGreen,uwarn:bgYellow,uerror:bgRed,debug:blue,trace:gray"; let match = ("ENVIO_TEST_LOGGING_FORMAT" in process.env); return PinoPretty.prettyFactory(match !== undefined ? ({ customLevels: logLevels, customColors: customColors, colorize: true }) : ({ customLevels: logLevels, customColors: customColors })); } function makeStreams(userLogLevel, formatter, logFile, defaultFileLogLevel) { let stream_stream = { write: v => { console.log(formatter(v)); } }; let stream = { stream: stream_stream, level: userLogLevel }; let maybeFileStream = Stdlib_Option.mapOr(logFile, [], dest => [{ stream: Pino.destination({ dest: dest, sync: false, mkdir: true }), level: defaultFileLogLevel }]); return [stream].concat(maybeFileStream); } function make$1(userLogLevel, customLevels, logFile, options, defaultFileLogLevel) { let options$1; if (options !== undefined) { let newrecord = {...options}; newrecord.customLevels = customLevels; newrecord.level = userLogLevel; options$1 = newrecord; } else { options$1 = { level: userLogLevel, customLevels: customLevels }; } let formatter = makeFormatter(customLevels); let ms = Pino.multistream(makeStreams(userLogLevel, formatter, logFile, defaultFileLogLevel)); return Pino.pino(options$1, ms); } let MultiStreamLogger = { makeFormatter: makeFormatter, makeStreams: makeStreams, make: make$1 }; export { createPinoMessage, createPinoMessageWithError, Transport, createChildParams, ECS, MultiStreamLogger, } /* pino Not a pure module */