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