synchronized dlangui.core.logger.Logger; also refactored it a little bit

This commit is contained in:
Donny Viszneki 2014-08-13 16:24:47 -07:00
parent 71fd3086bd
commit dbe7671cf2
4 changed files with 68 additions and 66 deletions

View File

@ -39,17 +39,15 @@ enum LogLevel : int {
Trace Trace
} }
__gshared LogLevel logLevel = LogLevel.Info;
__gshared std.stdio.File logFile;
void setLogLevel(LogLevel level) {
logLevel = level;
}
long currentTimeMillis() { long currentTimeMillis() {
return std.datetime.Clock.currStdTime / 10000; return std.datetime.Clock.currStdTime / 10000;
} }
synchronized class Log {
static {
private LogLevel logLevel = LogLevel.Info;
private std.stdio.File logFile;
void setStdoutLogger() { void setStdoutLogger() {
logFile = stdout; logFile = stdout;
} }
@ -62,8 +60,11 @@ void setFileLogger(File file) {
logFile = file; logFile = file;
} }
class Log { void setLogLevel(LogLevel level) {
static string logLevelName(LogLevel level) { logLevel = level;
}
string logLevelName(LogLevel level) {
switch (level) { switch (level) {
case LogLevel.Fatal: return "F"; case LogLevel.Fatal: return "F";
case LogLevel.Error: return "E"; case LogLevel.Error: return "E";
@ -74,7 +75,7 @@ class Log {
default: return "?"; default: return "?";
} }
} }
static void log(S...)(LogLevel level, S args) { void log(S...)(LogLevel level, S args) {
if (logLevel >= level && logFile.isOpen) { if (logLevel >= level && logFile.isOpen) {
SysTime ts = Clock.currTime(); 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.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));
@ -82,28 +83,29 @@ class Log {
logFile.flush(); logFile.flush();
} }
} }
static void v(S...)(S args) { void v(S...)(S args) {
if (logLevel >= LogLevel.Trace && logFile.isOpen) if (logLevel >= LogLevel.Trace && logFile.isOpen)
log(LogLevel.Trace, args); log(LogLevel.Trace, args);
} }
static void d(S...)(S args) { void d(S...)(S args) {
if (logLevel >= LogLevel.Debug && logFile.isOpen) if (logLevel >= LogLevel.Debug && logFile.isOpen)
log(LogLevel.Debug, args); log(LogLevel.Debug, args);
} }
static void i(S...)(S args) { void i(S...)(S args) {
if (logLevel >= LogLevel.Info && logFile.isOpen) if (logLevel >= LogLevel.Info && logFile.isOpen)
log(LogLevel.Info, args); log(LogLevel.Info, args);
} }
static void w(S...)(S args) { void w(S...)(S args) {
if (logLevel >= LogLevel.Warn && logFile.isOpen) if (logLevel >= LogLevel.Warn && logFile.isOpen)
log(LogLevel.Warn, args); log(LogLevel.Warn, args);
} }
static void e(S...)(S args) { void e(S...)(S args) {
if (logLevel >= LogLevel.Error && logFile.isOpen) if (logLevel >= LogLevel.Error && logFile.isOpen)
log(LogLevel.Error, args); log(LogLevel.Error, args);
} }
static void f(S...)(S args) { void f(S...)(S args) {
if (logLevel >= LogLevel.Fatal && logFile.isOpen) if (logLevel >= LogLevel.Fatal && logFile.isOpen)
log(LogLevel.Fatal, args); log(LogLevel.Fatal, args);
} }
} }
}

View File

@ -984,7 +984,7 @@ version(USE_SDL) {
int myWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int iCmdShow) int myWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int iCmdShow)
{ {
setFileLogger(std.stdio.File("ui.log", "w")); setFileLogger(std.stdio.File("ui.log", "w"));
setLogLevel(LogLevel.Trace); Log.setLogLevel(LogLevel.Trace);
Log.d("myWinMain()"); Log.d("myWinMain()");
string basePath = exePath(); string basePath = exePath();
Log.i("Current executable: ", exePath()); Log.i("Current executable: ", exePath());
@ -1006,8 +1006,8 @@ version(USE_SDL) {
int main(string[] args) int main(string[] args)
{ {
setStderrLogger(); Log.setStderrLogger();
setLogLevel(LogLevel.Trace); Log.setLogLevel(LogLevel.Warn);
FreeTypeFontManager ft = new FreeTypeFontManager(); FreeTypeFontManager ft = new FreeTypeFontManager();

View File

@ -721,9 +721,9 @@ int myWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int
{ {
setFileLogger(std.stdio.File("ui.log", "w")); setFileLogger(std.stdio.File("ui.log", "w"));
debug { debug {
setLogLevel(LogLevel.Trace); Log.setLogLevel(LogLevel.Trace);
} else { } else {
setLogLevel(LogLevel.Info); Log.setLogLevel(LogLevel.Info);
} }
Log.d("myWinMain()"); Log.d("myWinMain()");
string basePath = exePath(); string basePath = exePath();

View File

@ -1131,7 +1131,7 @@ version(USE_XCB) {
{ {
setStderrLogger(); setStderrLogger();
setLogLevel(LogLevel.Trace); Log.setLogLevel(LogLevel.Trace);
FreeTypeFontManager ft = new FreeTypeFontManager(); FreeTypeFontManager ft = new FreeTypeFontManager();
ft.registerFont("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", FontFamily.SansSerif, "DejaVu", false, FontWeight.Normal); ft.registerFont("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", FontFamily.SansSerif, "DejaVu", false, FontWeight.Normal);