On Dec 21, 2004, at 7:12 PM, Christopher Smith wrote:
If it isn't derived from std::ios_base, then manipulators like std::width etc can't be applied.

Actually, I believe my delegation based approach to doing logger streams did work just fine with IO maniplulators. It did ignore them if the stream wasn't enabled just like everything else (which I think is probably the right thing to do), but even that could be changed with some template specializations for manipulators.


We disagree on skipping manipulators applied when the threshold isn't reached. My opinion is that setting the threshold should only affect whether messages appear in the log or not, it should not affect the content of the messages. If you skip manipulators when the threshold isn't satisfied, then some aspect (say field width) on a particular message might vary with the threshold.

I would be willing to have a cook-off on the implementation. However, the time is wrong to do that while the core is still flaky from the recent Unicode rework. The stream based interface has the luxury of not actually being compiled into log4cxx, it is just a convenient header file that is provided and if log4cxx provides one, then nothing to stop someone else from using there own and we can make radical changes in the implementation as long as we keep the semantics equivalent (however doing has its own difficulties).

I not even totally opposed to providing two different flavors of logging streams, though ideally we could keep the semantics as close as possible.



Reply via email to