[mod] logging

This commit is contained in:
fenris 2025-09-25 16:35:22 +02:00
parent 43c1cda101
commit 834953b635
2 changed files with 67 additions and 9 deletions

View file

@ -41,7 +41,17 @@ namespace _zeitbild.conf
"error" "error"
], ],
"default": "info" "default": "info"
} },
"format": {
"nullable": false,
"type": "string",
"enum": [
"human_readable",
"jsonl",
"jsonl_structured",
],
"default": "human_readable",
},
}, },
"required": [ "required": [
] ]

View file

@ -165,11 +165,17 @@ async function main(
) : Promise<void> ) : Promise<void>
{ {
// init1 // init1
lib_plankton.log.conf_push( /*
lib_plankton.log.set_main_logger(
[ [
lib_plankton.log.channel_make({"kind": "stdout", "data": {"threshold": "info"}}), {
"kind": "std",
"data": {
}
}
] ]
); );
*/
// args // args
const arg_handler : lib_plankton.args.class_handler = new lib_plankton.args.class_handler({ const arg_handler : lib_plankton.args.class_handler = new lib_plankton.args.class_handler({
@ -258,12 +264,54 @@ async function main(
await _zeitbild.conf.init( await _zeitbild.conf.init(
args["conf_path"] args["conf_path"]
); );
lib_plankton.log.conf_push( lib_plankton.log.set_main_logger(
_zeitbild.conf.get().log.map( _zeitbild.conf.get().log.map(
(log_output : any) => lib_plankton.log.channel_make( (log_output : any) => {
switch (log_output.kind) {
case "stdout": {
return {
"kind": "minlevel",
"data": {
"core": {
"kind": "std",
"data": {
"target": "stdout",
"format": lib_plankton.call.distinguish(
{ {
"kind": log_output.kind, "kind": log_output.data.format,
"data": log_output.data "data": null,
},
{
"jsonl": () => ({
"kind": "jsonl",
"data": {
"structured": false,
}
}),
"jsonl_structured": () => ({
"kind": "jsonl",
"data": {
"structured": true,
}
}),
"human_readable": () => ({
"kind": "human_readable",
"data": {
}
}),
}
),
}
},
"threshold": log_output.data.threshold,
}
};
break;
}
default: {
throw (new Error("unhandled"));
break;
}
} }
) )
) )
@ -327,7 +375,7 @@ async function main(
break; break;
} }
case "api-doc": { case "api-doc": {
lib_plankton.log.conf_push([]); lib_plankton.log.set_main_logger([]);
const rest_subject : lib_plankton.rest.type_rest = _zeitbild.api.make(); const rest_subject : lib_plankton.rest.type_rest = _zeitbild.api.make();
lib_plankton.log.conf_pop(); lib_plankton.log.conf_pop();
process.stdout.write( process.stdout.write(