envio
Version:
A latency and sync speed optimized, developer friendly blockchain data indexer.
278 lines (238 loc) • 6.99 kB
JavaScript
// Generated by ReScript, PLEASE EDIT WITH CARE
;
var Pino = require("./bindings/Pino.res.js");
var Pino$1 = require("pino");
var Js_exn = require("rescript/lib/js/js_exn.js");
var Js_dict = require("rescript/lib/js/js_dict.js");
var Caml_obj = require("rescript/lib/js/caml_obj.js");
var Internal = require("./Internal.res.js");
var Caml_option = require("rescript/lib/js/caml_option.js");
var EcsPinoFormat = require("@elastic/ecs-pino-format");
var logLevels = Js_dict.fromArray([
[
"udebug",
32
],
[
"uinfo",
34
],
[
"uwarn",
36
],
[
"uerror",
38
],
[
"trace",
10
],
[
"debug",
20
],
[
"info",
30
],
[
"warn",
40
],
[
"error",
50
],
[
"fatal",
60
]
]);
var logger = {
contents: undefined
};
function makeLogger(logStrategy, logFilePath, defaultFileLogLevel, userLogLevel) {
var pinoFile_target = "pino/file";
var pinoFile_options = Caml_option.some(Pino.Transport.makeTransportOptions({
destination: logFilePath,
append: true,
mkdir: true
}));
var pinoFile_level = defaultFileLogLevel;
var pinoFile = {
target: pinoFile_target,
options: pinoFile_options,
level: pinoFile_level
};
var makeMultiStreamLogger = function (none, none$1) {
return Pino.MultiStreamLogger.make(userLogLevel, logLevels, none, none$1, defaultFileLogLevel);
};
switch (logStrategy) {
case "ecs-file" :
var newrecord = Caml_obj.obj_dup(EcsPinoFormat());
return Pino$1((newrecord.customLevels = logLevels, newrecord), Pino$1.transport(pinoFile));
case "ecs-console" :
var newrecord$1 = Caml_obj.obj_dup(EcsPinoFormat());
return Pino$1((newrecord$1.customLevels = logLevels, newrecord$1.level = userLogLevel, newrecord$1));
case "ecs-console-multistream" :
return makeMultiStreamLogger(undefined, EcsPinoFormat());
case "file-only" :
return Pino$1({
level: defaultFileLogLevel,
customLevels: logLevels
}, Pino$1.transport(pinoFile));
case "console-raw" :
case "console-pretty" :
return makeMultiStreamLogger(undefined, undefined);
case "both-prettyconsole" :
return makeMultiStreamLogger(logFilePath, undefined);
}
}
function setLogger(l) {
logger.contents = l;
}
function getLogger() {
var logger$1 = logger.contents;
if (logger$1 !== undefined) {
return logger$1;
} else {
return Js_exn.raiseError("Unreachable code. Logger not initialized");
}
}
function setLogLevel(level) {
getLogger().level = level;
}
function trace(message) {
getLogger().trace(Pino.createPinoMessage(message));
}
function debug(message) {
getLogger().debug(Pino.createPinoMessage(message));
}
function info(message) {
getLogger().info(Pino.createPinoMessage(message));
}
function warn(message) {
getLogger().warn(Pino.createPinoMessage(message));
}
function error(message) {
getLogger().error(Pino.createPinoMessage(message));
}
function errorWithExn(error, message) {
getLogger().error(Pino.createPinoMessageWithError(message, error));
}
function fatal(message) {
getLogger().fatal(Pino.createPinoMessage(message));
}
function childTrace(logger, params) {
logger.trace(Pino.createPinoMessage(params));
}
function childDebug(logger, params) {
logger.debug(Pino.createPinoMessage(params));
}
function childInfo(logger, params) {
logger.info(Pino.createPinoMessage(params));
}
function childWarn(logger, params) {
logger.warn(Pino.createPinoMessage(params));
}
function childError(logger, params) {
logger.error(Pino.createPinoMessage(params));
}
function childErrorWithExn(logger, error, params) {
logger.error(Pino.createPinoMessageWithError(params, error));
}
function childFatal(logger, params) {
logger.fatal(Pino.createPinoMessage(params));
}
function createChild(params) {
return getLogger().child(Pino.createChildParams(params));
}
function createChildFrom(logger, params) {
return logger.child(Pino.createChildParams(params));
}
function getEventLogger(eventItem) {
var l = eventItem.loggerCache;
if (l !== undefined) {
return l;
}
var l$1 = getLogger().child(Pino.createChildParams({
contractName: eventItem.eventConfig.contractName,
eventName: eventItem.eventConfig.name,
chainId: eventItem.chain,
block: eventItem.blockNumber,
logIndex: eventItem.logIndex,
address: eventItem.event.srcAddress
}));
eventItem.loggerCache = l$1;
return l$1;
}
function logForItem(eventItem, level, message, params) {
return getEventLogger(eventItem)[level](params, message);
}
function noopLogger_debug(_message, param) {
}
function noopLogger_info(_message, param) {
}
function noopLogger_warn(_message, param) {
}
function noopLogger_error(_message, param) {
}
function noopLogger_errorWithExn(_message, _exn) {
}
var noopLogger = {
debug: noopLogger_debug,
info: noopLogger_info,
warn: noopLogger_warn,
error: noopLogger_error,
errorWithExn: noopLogger_errorWithExn
};
function getUserLogger(eventItem) {
return {
debug: (function (message, params) {
getEventLogger(eventItem)["udebug"](params, message);
}),
info: (function (message, params) {
getEventLogger(eventItem)["uinfo"](params, message);
}),
warn: (function (message, params) {
getEventLogger(eventItem)["uwarn"](params, message);
}),
error: (function (message, params) {
getEventLogger(eventItem)["uerror"](params, message);
}),
errorWithExn: (function (message, exn) {
var params = {
err: Internal.prettifyExn(exn)
};
getEventLogger(eventItem)["uerror"](params, message);
})
};
}
exports.logLevels = logLevels;
exports.makeLogger = makeLogger;
exports.setLogger = setLogger;
exports.getLogger = getLogger;
exports.setLogLevel = setLogLevel;
exports.trace = trace;
exports.debug = debug;
exports.info = info;
exports.warn = warn;
exports.error = error;
exports.errorWithExn = errorWithExn;
exports.fatal = fatal;
exports.childTrace = childTrace;
exports.childDebug = childDebug;
exports.childInfo = childInfo;
exports.childWarn = childWarn;
exports.childError = childError;
exports.childErrorWithExn = childErrorWithExn;
exports.childFatal = childFatal;
exports.createChild = createChild;
exports.createChildFrom = createChildFrom;
exports.getEventLogger = getEventLogger;
exports.logForItem = logForItem;
exports.noopLogger = noopLogger;
exports.getUserLogger = getUserLogger;
/* logLevels Not a pure module */