
Every C++ program -- and every networking app -- needs a good logging mechanism. ACE provides you with more than one way to handle such things. Consider your application and how you expect it to grow over time.
Your choices range from the simple ACE_DEBUG macros to the highly flexible logging service. Regarding .NET, exception handling is more than just throwing and catching objects. There are many design elements in providing a robust system, and providing a sound exception handling, logging, and tracing schema are among the first steps.
In this chapter from ".NET Patterns: Architecture, Design, and Process" book, you'll learn best practices for determining when to throw, catch, and log your errors.
The first link in the original article "Your choices" does not work. If you have a replacement please post.
I'm interested in ACE_DEBUG but cannot find documentation at the ACE site. In another employment we had a class+macro that allowed us to switch on/off debug logging/tracing messages at run time on a class by class basis and I'm looking for something similar. If you have suggestions please post.