Newer
Older
ddhx / src / logger.d
/// Basic logger.
/// Copyright: dd86k <dd@dax.moe>
/// License: MIT
/// Authors: $(LINK2 https://github.com/dd86k, dd86k)
module logger;

import std.stdio;
import std.datetime.stopwatch;

private __gshared File tracefile;
private __gshared StopWatch sw;
private __gshared bool tracing;

void traceInit()
{
    tracing = true;
    tracefile = File("ddhx.log", "w");
    tracefile.setvbuf(0, _IONBF);
    sw.start();
}

void trace(A...)(string fmt, A args)
{
    if (tracing == false)
        return;
    
    double ms = sw.peek().total!"msecs"() / 1_000.0;
    tracefile.writef("[%08.3f] ", ms);
    tracefile.writefln(fmt, args);
}