
Hi, After looking forward to a Boost Logging library for a while, I have been playing with this idea. This library http://channel.sourceforge.net/ which I believe the author is working towards including in Boost could be used to help write the logging library? Why because it works both acrosss local and remote machines and supports a asyncronous subscribing machenism. Boost.Logging could use Boost.Channel (hopefully) to allow doing of something like below somewhere along the lines of... Boost.Logging Log; // Some of these channels could be a built-in to Boost logging. // add one channel at a time Log.AddChannel(new SysLogOnLocal()); Log.AddChannel(new SysLogOnRemoteChannel("remote ip")); Log.AddChannel(new SysLogLocalAndRemoteChannel(""remote ip"); Log.AddChannel(stdout); Log.AddChannel(stderr); Log.AddChannel(GuiWindow); // add lots all together Log.AddChannel(new LocalInfoChannel(), new LocalAndRemoteInfoChannel(), new ErrorChannel(), new WarningChannel()); // writes to the info channel Log.Write(LocalInfoChannel, "Hello World"); // writes to the info channel Log.Write(LocalAndRemoteInfoChannel, "Hello World"); // writes to all the channels that the logger is subscribed to (nasty)... Log.Write("Hello World"); The possibility and the power of this thing could be, well a powerful logging library.... I suggest you look into this library during this design phase... Thanks Shams -- "JD" <jean.daniel.michaud@gmail.com> wrote in message news:eumhck$vk2$1@sea.gmane.org...
Hello,
So here is the question: "Is there any interest in a logging library for boost?"
John Torjo did not answer my mail, beside I looked at pantheios. it seems a little bit complex... My idea is that a logging library should be _simple_ to use.
Here is a small example:
// snippet on #include <fstream> #include <boost/logging.hpp>
int main(int argc, char **argv) { BOOST_LOG_INIT(("[" >> boost::logging::level >> "]," >> boost::logging::filename >> "(" >> boost::logging::line >> ")," >> boost::logging::time >> "," >> boost::logging::trace >> boost::logging::eol), // log format 2); // log level
BOOST_LOG_ADD_OUTPUT_STREAM(new std::ofstream("./output.log")); BOOST_LOG_ADD_OUTPUT_STREAM(&std::cout);
BOOST_LOG(1, "something"); BOOST_LOG(2, "something else"); BOOST_LOG(3, "doesn't matter"); char you_want[256] = "you want"; BOOST_LOG(1, "Let's say " << you_want << " to display " << 2);
return 0; } // snippet off
You can find the first draft of a logging library in the boost Sandbox vault. It consists of a header files, some examples and documentation. Put the file at your boost root folder and unzip it.
It compiles with msvc and vc-8_0. I'll try with gcc asap.
So let me know if you think it worth something or not.
JD
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost