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");