vibe.d HTMLLogger
Chris via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Oct 12 07:19:36 PDT 2016
On Wednesday, 12 October 2016 at 11:54:14 UTC, Chris wrote:
> Why does FileLogger work while HTMLLogger crashes on the same
> thing? I've had a look at the source code, but couldn't find
> anything. It happens with vibe.d `0.7.30-beta1` and `0.7.29`
> alike (haven't tested lower versions).
>
> [Test code]
> auto logLine = LogLine();
> logLine.level = LogLevel.info;
>
> // Fine
> auto l = new FileLogger("log/logger_test.log");
> l.minLevel = LogLevel.info;
> l.beginLine(logLine);
> l.put("Hello!");
> l.endLine();
>
> htmlLogger = new HTMLLogger("log/logger_test.html");
> htmlLogger.minLevel = LogLevel.info;
> // crashes here (at `beginLine`), if removed it works.
> htmlLogger.beginLine(logLine);
> htmlLogger.put("Hello!");
> htmlLogger.endLine();
The answer is that `HTMLLogger` needs to be given the time in the
`LogLine` struct, else it fails. The time stamp is not auto
generated. I completely overlooked that.
Here's the culprit:
cf.
m_logFile.writef(`<div class="timeStamp">%s</div>`,
msg.time.toISOExtString());
https://github.com/rejectedsoftware/vibe.d/blob/master/source/vibe/core/log.d#L363
More information about the Digitalmars-d-learn
mailing list