enum LogLevel { INFO, WARN, ERROR }
template log(LogLevel level)
{
void log(Args...)(Args args, string fn = __FUNCTION__, string file = __FILE__, size_t line = __LINE__)
{
writeln(Clock.currTime(), " [", level, "] ", file, '(', line, "): ", fn, ": ", args);
}
}
alias info = log!(LogLevel.INFO);
alias warn = log!(LogLevel.WARN);
alias error = log!(LogLevel.ERROR);
//不再需要插件/样板代码
---
void main(string[] args)
{
info("hello", "world");
warn("i am ", "number ", 1);
error(true);
log!(LogLevel.INFO)("manual call");
}
我得找个专门的目录保存他们.有的很好.