envio
Version:
A latency and sync speed optimized, developer friendly blockchain data indexer.
107 lines (93 loc) • 2.51 kB
JavaScript
// 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 */