std.experimental.logger

sanjayss via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Jan 4 18:59:04 PST 2016


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






More information about the Digitalmars-d-learn mailing list