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,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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue