On 8/27/10 18:18 PDT, sybrandy wrote: > Here's my current version of the logger. All of the documentation > should be in the logger.d file. I also provided a sample config file > (logger.conf) and a sample test file that I was using for benchmarking > (main.d). Let me know if you have any questions. Feedback on improving > this is also welcome. > > The one thing I forgot to note in here is that the function that writes > to the log is passed into the second version of the constructor, which > needs to be used only once in the code. A simple log writer is included > at the bottom of logger.d that does work. The reason I did this was > when I initially asked for feedback, I got several ideas on how the > logger can be improved. Also, I discussed this with a friend of mine > who stated that people may want to log to something other than a file, > such as syslog. So, instead of trying to make the one "end all be all" > logger, I felt that by allowing it to accept a function as a parameter > to the constructor, the person can write to any type of log file, > database, whatever they want and the logger interface works the same no > matter what. > > There currently is a bug somewhere that I don't understand. Even though > I have "OwnerTerminated" as part of my receive statement, I still see > exceptions when the program closes. However, it doesn't seem to affect > the execution of the logger. > > Enjoy. > > Casey
Thanks. I think we should establish a tradition for reviews on this forum. The Boost review model has functioned very well, in the sense that it has consistently produced two outcomes: excellent libraries and pulp-beaten library authors. So I'd opt if at all possible for a tough review process that produces good libraries as opposed to a nicey-nicey process that fosters a low barrier of entry. As I guess you suspected already, I have a few critical comments about the proposed libraries. In brief, the library as proposed: * does stuff that I don't care about (creation of logs, pluggable writers, overridable logging functions); * does not do the two fundamental things that all loggers should do. Those only two things are: 1. Configure logging level during compilation 2. Configure logging level during runtime If you want to have your library accepted in Phobos, I suggest you take a very close look at glog's interface and implementation. It's a simple and robust library used by two major companies that depend on good logging. To exaggerate a bit, "so"s seat-of-the pants sample code is closer to the ideal logging library than your current draft. But I am encouraged by the fact that you went through the aggravation to write the code and show it to everybody, so hopefully you'll have the willpower to push this through. Thanks, Andrei