digitalmars.D.learn - std.experimental.logger
- sanjayss (17/17) Jan 04 2016 I'm doing the following:
- Mike (5/22) Jan 04 2016 You need to log with sharedLog:
- sanjayss (14/43) Jan 04 2016 Thanks, that works. But the docs are confusing -- it gives the
- Mike (4/19) Jan 04 2016 You are right, according to the docs your example should've
- Jonathan M Davis via Digitalmars-d-learn (5/8) Jan 05 2016 We don't use the issue system on github. We use bugzilla:
- Robert burner Schadek (8/18) Jan 05 2016 diff:
- sanjayss (4/25) Jan 05 2016 Thanks -- seems like you found my bugzilla issue and fixed the
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)
Jan 04 2016
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");
Jan 04 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: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");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");
Jan 04 2016
On Tuesday, 5 January 2016 at 02:59:04 UTC, sanjayss wrote:On Tuesday, 5 January 2016 at 02:49:01 UTC, Mike wrote:You are right, according to the docs your example should've worked just fine. Tried it myself on DMD 2.069.2 and it doesn't work either. You should raise an issue on github.[...]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");
Jan 04 2016
On Tuesday, January 05, 2016 03:01:14 Mike via Digitalmars-d-learn wrote:You are right, according to the docs your example should've worked just fine. Tried it myself on DMD 2.069.2 and it doesn't work either. You should raise an issue on github.We don't use the issue system on github. We use bugzilla: https://issues.dlang.org Please report any issues you find there. - Jonathan M Davis
Jan 05 2016
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"); }diff: sharedLog = new FileLogger("logfile.log", LogLevel.all); calling log uses the globalLogLevel, which is LogLevel.all by default. The default LogLevel of a new FileLogger is LogLevel.info. So the new FileLogger drops the log messages. This is an inconsistency I will fix.
Jan 05 2016
On Tuesday, 5 January 2016 at 09:18:21 UTC, Robert burner Schadek wrote:On Tuesday, 5 January 2016 at 02:44:48 UTC, sanjayss wrote:Thanks -- seems like you found my bugzilla issue and fixed the problem. I'll try using your diff above and see if that helps me.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"); }diff: sharedLog = new FileLogger("logfile.log", LogLevel.all); calling log uses the globalLogLevel, which is LogLevel.all by default. The default LogLevel of a new FileLogger is LogLevel.info. So the new FileLogger drops the log messages. This is an inconsistency I will fix.
Jan 05 2016