69 lines
1.1 KiB
TypeScript
69 lines
1.1 KiB
TypeScript
namespace _wiki_js_cli.helpers.log
|
|
{
|
|
|
|
/**
|
|
*/
|
|
export enum enum_level {
|
|
debug = "debug",
|
|
info = "info",
|
|
notice = "notice",
|
|
warning = "warning",
|
|
error = "error",
|
|
}
|
|
|
|
|
|
/**
|
|
*/
|
|
const _level_order : Array<enum_level> = [
|
|
enum_level.debug,
|
|
enum_level.info,
|
|
enum_level.notice,
|
|
enum_level.warning,
|
|
enum_level.error,
|
|
];
|
|
|
|
|
|
/**
|
|
*/
|
|
var _threshold : enum_level = enum_level.info;
|
|
|
|
|
|
/**
|
|
*/
|
|
export function setup(
|
|
threshold : enum_level
|
|
) : Promise<void>
|
|
{
|
|
_threshold = threshold;
|
|
return Promise.resolve(undefined);
|
|
}
|
|
|
|
|
|
/**
|
|
*/
|
|
export function write(
|
|
level : enum_level,
|
|
incident : string,
|
|
details : any
|
|
) : void
|
|
{
|
|
if (_level_order.indexOf(level) < _level_order.indexOf(_threshold)) {
|
|
// do nothing
|
|
}
|
|
else {
|
|
process.stderr.write(
|
|
_wiki_js_cli.helpers.string.coin(
|
|
"\n<{{datetime}}> [{{level}}] {{incident}}\n{{details}}\n\n",
|
|
{
|
|
"datetime": (new Date()).toISOString(),
|
|
"level": level,
|
|
"incident": incident,
|
|
"details": JSON.stringify(details, undefined, "\t"),
|
|
}
|
|
)
|
|
);
|
|
}
|
|
}
|
|
|
|
}
|
|
|