mirror of https://github.com/buggins/dlangui.git
synchronized dlangui.core.logger.Logger; also refactored it a little bit
This commit is contained in:
parent
71fd3086bd
commit
dbe7671cf2
|
@ -39,71 +39,73 @@ enum LogLevel : int {
|
|||
Trace
|
||||
}
|
||||
|
||||
__gshared LogLevel logLevel = LogLevel.Info;
|
||||
__gshared std.stdio.File logFile;
|
||||
|
||||
void setLogLevel(LogLevel level) {
|
||||
logLevel = level;
|
||||
}
|
||||
|
||||
long currentTimeMillis() {
|
||||
return std.datetime.Clock.currStdTime / 10000;
|
||||
}
|
||||
|
||||
void setStdoutLogger() {
|
||||
logFile = stdout;
|
||||
}
|
||||
synchronized class Log {
|
||||
static {
|
||||
private LogLevel logLevel = LogLevel.Info;
|
||||
private std.stdio.File logFile;
|
||||
|
||||
void setStdoutLogger() {
|
||||
logFile = stdout;
|
||||
}
|
||||
|
||||
void setStderrLogger() {
|
||||
logFile = stderr;
|
||||
}
|
||||
void setStderrLogger() {
|
||||
logFile = stderr;
|
||||
}
|
||||
|
||||
void setFileLogger(File file) {
|
||||
logFile = file;
|
||||
}
|
||||
void setFileLogger(File file) {
|
||||
logFile = file;
|
||||
}
|
||||
|
||||
class Log {
|
||||
static string logLevelName(LogLevel level) {
|
||||
switch (level) {
|
||||
case LogLevel.Fatal: return "F";
|
||||
case LogLevel.Error: return "E";
|
||||
case LogLevel.Warn: return "W";
|
||||
case LogLevel.Info: return "I";
|
||||
case LogLevel.Debug: return "D";
|
||||
case LogLevel.Trace: return "V";
|
||||
default: return "?";
|
||||
}
|
||||
}
|
||||
static void log(S...)(LogLevel level, S args) {
|
||||
if (logLevel >= level && logFile.isOpen) {
|
||||
SysTime ts = Clock.currTime();
|
||||
logFile.writef("%04d-%02d-%02d %02d:%02d:%02d.%03d %s ", ts.year, ts.month, ts.day, ts.hour, ts.minute, ts.second, ts.fracSec.msecs, logLevelName(level));
|
||||
logFile.writeln(args);
|
||||
logFile.flush();
|
||||
}
|
||||
}
|
||||
static void v(S...)(S args) {
|
||||
if (logLevel >= LogLevel.Trace && logFile.isOpen)
|
||||
log(LogLevel.Trace, args);
|
||||
}
|
||||
static void d(S...)(S args) {
|
||||
if (logLevel >= LogLevel.Debug && logFile.isOpen)
|
||||
log(LogLevel.Debug, args);
|
||||
}
|
||||
static void i(S...)(S args) {
|
||||
if (logLevel >= LogLevel.Info && logFile.isOpen)
|
||||
log(LogLevel.Info, args);
|
||||
}
|
||||
static void w(S...)(S args) {
|
||||
if (logLevel >= LogLevel.Warn && logFile.isOpen)
|
||||
log(LogLevel.Warn, args);
|
||||
}
|
||||
static void e(S...)(S args) {
|
||||
if (logLevel >= LogLevel.Error && logFile.isOpen)
|
||||
log(LogLevel.Error, args);
|
||||
}
|
||||
static void f(S...)(S args) {
|
||||
if (logLevel >= LogLevel.Fatal && logFile.isOpen)
|
||||
log(LogLevel.Fatal, args);
|
||||
}
|
||||
void setLogLevel(LogLevel level) {
|
||||
logLevel = level;
|
||||
}
|
||||
|
||||
string logLevelName(LogLevel level) {
|
||||
switch (level) {
|
||||
case LogLevel.Fatal: return "F";
|
||||
case LogLevel.Error: return "E";
|
||||
case LogLevel.Warn: return "W";
|
||||
case LogLevel.Info: return "I";
|
||||
case LogLevel.Debug: return "D";
|
||||
case LogLevel.Trace: return "V";
|
||||
default: return "?";
|
||||
}
|
||||
}
|
||||
void log(S...)(LogLevel level, S args) {
|
||||
if (logLevel >= level && logFile.isOpen) {
|
||||
SysTime ts = Clock.currTime();
|
||||
logFile.writef("%04d-%02d-%02d %02d:%02d:%02d.%03d %s ", ts.year, ts.month, ts.day, ts.hour, ts.minute, ts.second, ts.fracSec.msecs, logLevelName(level));
|
||||
logFile.writeln(args);
|
||||
logFile.flush();
|
||||
}
|
||||
}
|
||||
void v(S...)(S args) {
|
||||
if (logLevel >= LogLevel.Trace && logFile.isOpen)
|
||||
log(LogLevel.Trace, args);
|
||||
}
|
||||
void d(S...)(S args) {
|
||||
if (logLevel >= LogLevel.Debug && logFile.isOpen)
|
||||
log(LogLevel.Debug, args);
|
||||
}
|
||||
void i(S...)(S args) {
|
||||
if (logLevel >= LogLevel.Info && logFile.isOpen)
|
||||
log(LogLevel.Info, args);
|
||||
}
|
||||
void w(S...)(S args) {
|
||||
if (logLevel >= LogLevel.Warn && logFile.isOpen)
|
||||
log(LogLevel.Warn, args);
|
||||
}
|
||||
void e(S...)(S args) {
|
||||
if (logLevel >= LogLevel.Error && logFile.isOpen)
|
||||
log(LogLevel.Error, args);
|
||||
}
|
||||
void f(S...)(S args) {
|
||||
if (logLevel >= LogLevel.Fatal && logFile.isOpen)
|
||||
log(LogLevel.Fatal, args);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -984,7 +984,7 @@ version(USE_SDL) {
|
|||
int myWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int iCmdShow)
|
||||
{
|
||||
setFileLogger(std.stdio.File("ui.log", "w"));
|
||||
setLogLevel(LogLevel.Trace);
|
||||
Log.setLogLevel(LogLevel.Trace);
|
||||
Log.d("myWinMain()");
|
||||
string basePath = exePath();
|
||||
Log.i("Current executable: ", exePath());
|
||||
|
@ -1006,8 +1006,8 @@ version(USE_SDL) {
|
|||
int main(string[] args)
|
||||
{
|
||||
|
||||
setStderrLogger();
|
||||
setLogLevel(LogLevel.Trace);
|
||||
Log.setStderrLogger();
|
||||
Log.setLogLevel(LogLevel.Warn);
|
||||
|
||||
|
||||
FreeTypeFontManager ft = new FreeTypeFontManager();
|
||||
|
|
|
@ -721,9 +721,9 @@ int myWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int
|
|||
{
|
||||
setFileLogger(std.stdio.File("ui.log", "w"));
|
||||
debug {
|
||||
setLogLevel(LogLevel.Trace);
|
||||
Log.setLogLevel(LogLevel.Trace);
|
||||
} else {
|
||||
setLogLevel(LogLevel.Info);
|
||||
Log.setLogLevel(LogLevel.Info);
|
||||
}
|
||||
Log.d("myWinMain()");
|
||||
string basePath = exePath();
|
||||
|
|
|
@ -1131,7 +1131,7 @@ version(USE_XCB) {
|
|||
{
|
||||
|
||||
setStderrLogger();
|
||||
setLogLevel(LogLevel.Trace);
|
||||
Log.setLogLevel(LogLevel.Trace);
|
||||
|
||||
FreeTypeFontManager ft = new FreeTypeFontManager();
|
||||
ft.registerFont("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", FontFamily.SansSerif, "DejaVu", false, FontWeight.Normal);
|
||||
|
|
Loading…
Reference in New Issue