Posted Fri, 27 Feb 2015 00:31:12 GMT in reply to
CanadianNomad
Reply
And in case someone wants my ConsoleLogger... Here is the log function I changed:
override void log(ref LogLine msg)
@trusted // FILE isn't @safe (as of DMD 2.065)
{
string pref;
string color;
File file;
string colorNormal = "\x1B[0m";
string colorRed = "\x1B[31m";
string colorGreen = "\x1B[32m";
string colorYellow = "\x1B[33m";
string colorBlue = "\x1B[34m";
string colorMagenta = "\x1B[35m";
string colorCyan = "\x1B[36m";
string colorWhite = "\x1B[37m";
string colorReset = "\033[0m";
color = colorGreen;
final switch (msg.level) {
case LogLevel.trace: pref = "trc"; file = m_diagFile; break;
case LogLevel.debugV: pref = "dbv"; file = m_diagFile; break;
case LogLevel.debug_: pref = "dbg"; file = m_diagFile; break;
case LogLevel.diagnostic: pref = "dia"; file = m_diagFile; break;
case LogLevel.info: pref = "INFO"; file = m_infoFile; break;
case LogLevel.warn: pref = "WARN"; file = m_diagFile; color = colorYellow; break;
case LogLevel.error: pref = "ERROR"; file = m_diagFile; color = colorRed; break;
case LogLevel.critical: pref = "CRITICAL"; file = m_diagFile; color = colorRed; break;
case LogLevel.fatal: pref = "FATAL"; file = m_diagFile; color = colorRed; break;
case LogLevel.none: assert(false);
}
auto fmt = (msg.textLine == 1) ? this.format : this.infoFormat;
final switch (fmt) {
case Format.plain: file.writeln(msg.text); break;
case Format.thread: file.writefln("[%08X:%08X %s] %s", msg.threadID, msg.fiberID, pref, msg.text); break;
case Format.threadTime:
auto tm = msg.time;
file.writefln("[%08X:%08X %d.%02d.%02d %02d:%02d:%02d.%03d %s] %s",
msg.threadID, msg.fiberID,
tm.year, tm.month, tm.day, tm.hour, tm.minute, tm.second, tm.fracSec.msecs,
pref, msg.text);
break;
case Format.timeColor:
auto tm = msg.time;
file.writefln("[%d-%02d-%02d %02d:%02d:%02d.%03d %s%s%s] %s%s%s",
tm.year, tm.month, tm.day, tm.hour, tm.minute, tm.second, tm.fracSec.msecs,
color, pref, colorReset, color, msg.text, colorReset);
break;
}
file.flush();
}
I'm sure someone else would do better... But I'm just doing this for fun....