On Tuesday, 5 January 2016 at 02:49:01 UTC, Mike wrote:
On Tuesday, 5 January 2016 at 02:44:48 UTC, sanjayss wrote:
I'm doing the following:

import std.experimental.logger;

int
main(string[] args)
{
sharedLog = new FileLogger("logfile.log");

log("Test log 1");
log("Test log 2");
log("Test log 3");
}


and I expected the logs to be seen in the logfile.log, but it seems like my reading of the docs on this is incorrect and the logfile.log is not populated at all (though it is created). What am I missing or using incorrectly?

Basically I am trying to have the default logger log to a file instead of stderr.

(I am on a Mac (OS-X 10.11.1, 64 bit) and using DMD 2.069.2)

You need to log with sharedLog:
sharedLog.log("Test log 1");
sharedLog.log("Test log 2");
sharedLog.log("Test log 3");

Thanks, that works. But the docs are confusing -- it gives the impression that "sharedLog" is something associated with the default logger -- so I would expect the above to work with just the plain log() call to invoke the default logger. But it seems like I am just creating a new logger and using that by saying "sharedLog.log()".

From the doc:

The default Logger will by default log to stderr and has a default LogLevel of LogLevel.all. The default Logger can be accessed by using the property called sharedLog. This property a reference to the current default Logger. This reference can be used to assign a new default Logger.

sharedLog = new FileLogger("New_Default_Log_File.log");




Reply via email to