Добавлен новый модуль logger для ведения журнала.

This commit is contained in:
Alexander Zhirov 2026-01-06 10:55:10 +03:00
parent c0487ac9d4
commit 3d3e84a8a4
Signed by: alexander
GPG key ID: C8D8BE544A27C511

46
source/ncui/lib/logger.d Normal file
View file

@ -0,0 +1,46 @@
module ncui.lib.logger;
import std.stdio : stderr;
import std.logger : MultiLogger, sharedLog, FileLogger;
public import std.logger : LogLevel,
trace, tracef,
info, infof,
warning, warningf,
error, errorf,
critical, criticalf,
fatal, fatalf;
void setLogLevel(int verbose = LogLevel.all, string logfile = string.init)
{
LogLevel level = LogLevel.off;
switch (verbose)
{
case 0:
level = LogLevel.off;
break;
case 1:
level = LogLevel.error;
break;
case 2:
level = LogLevel.warning;
break;
case 3:
level = LogLevel.info;
break;
case 4:
level = LogLevel.trace;
break;
default:
level = LogLevel.all;
}
auto multi = new MultiLogger(level);
sharedLog = cast(shared) multi;
if (logfile.length > 0)
{
multi.insertLogger("file", new FileLogger(logfile));
}
multi.insertLogger("stderr", new FileLogger(stderr));
}