Early review of std.logger

Guillaume Chatelet chatelet.guillaume at gmail.com
Mon Oct 14 12:35:59 PDT 2013


On Monday, 14 October 2013 at 12:40:16 UTC, Sönke Ludwig wrote:
> Am 14.10.2013 13:39, schrieb Dicebot:
>  - For me this logger is completely worthless without any debug 
> log levels. The last std.log entry had at least anonymous 
> verbosity
> levels, but I'd prefer something like I did in vibe.d [1], 
> where each level has a defined role. This should especially 
> improve the situation when multiple libraries are involved.

Orthogonal to log levels one idea could be to define a namespace 
for a logger instance.

* The namespace could be in the form of a prefix (useful for 
grepping and simple to implement)

logger.setPrefix("myApi__");
logger.warn("a warning"); // would output "myApi__a warning"

* The namespace could be deduced from the module name and 
filtered at runtime by a flag 'à la' gtest ( 
https://code.google.com/p/googletest/wiki/AdvancedGuide#Running_a_Subset_of_the_Tests 
). This would be helpful when displaying fine grained log for 
debugging purpose without being flooded by other libraries logs.

>./foo Has no flag, and thus output all the logs.
>./foo --log_namespace=myLyb.* Output everything in myLyb module.

This option requires initializing the test library in main and 
would be more costly because of the namespace matching ( maybe 
the initialization could trigger a different implementation at 
runtime or we enable this feature at compile time through a 
version )



More information about the Digitalmars-d mailing list