DGD Library
Version: | Updated: Sun Feb 12 21:16:04 2012
Install DGD
Download DGD

DGD Library v2 README

Copyright (c) 2002-2012. Dimitry Kloper kloper@users.sourceforge.net

Available from http://sourceforge.net/projects/dgd


DGD is yet another logging library for C++. It was designed for debug using log file approach, useful for debugging applications that implement complicated algorithms and have lots of iterations distributed among different execution threads.

Such applications typically have trace verbose or trace nothing policy, but require clear and well-formatted log file that will contain all data required for later analysis and debugging.

Thus, DGD has rudimentary (but still useful) trace filtering capabilities, but very nice automated log indenting and formatting.


DGD v2 is heavily tied to C++ boost library (http://boost.org) and is implemented on top of boost::iostreams library.


DGD v2 produces a separate log file for each thread invoking DGD API.

Tested Platforms/Compilers

gcc 4.5 mingw32 boost 1.47

License terms

Boost Software License. See http://boost.org/users/license.html for more details.

Feature list

  • Logs with limited line width, controllable word wrapping and automatic indenting.
  • Standard iostream manipulators are fully supported and many new ones are implemented.
  • Any ostream shift operator is supported. No need to port existing tracing methods to DGD. It is possible to enhance existing tracing operators with DGD manipulators.
  • Automatic scoping. Defining a single variable in code logical block will create an indented block in the log delimited with braces.
  • Log journal is used for handling unexpected exceptions, segmentation violations and other crashes. The journal is kept next to the log file and is implemented as a cyclic memory mapped buffer.
  • Extensibility. DGD is implemented on top of boost::iostreams, and provides filters and sinks introduced by the library. Users can add their own components to the chain, customizing and extending DGD behavior.
  • Many more and more is coming.


DGD v2 is a template library and can be used without any prior compilation.

For information about building of DGD test suite and samples refer to instructions in INSTALL file in DGD root directory.

Similar libraries

libcwd (http://libcwd.sourceforge.net/) -- full-featured debugging support library for C++ developers.

log4cpp (http://log4cpp.sourceforge.net) -- Log4cpp is library of C++ classes for flexible logging to files, syslog, IDSA and other destinations.

Bug reports

Please report bugs at

Mailing lists

Please refer to the mailing list of the project at http://sourceforge.net/projects/dgd.

SourceForge.net Logo Powered by Mason Powered by Perl
Web design derived from Pasilda design found on www.oswd.org.
Copyright (c) 2002-2012. Dimitry Kloper <kloper@users.sourceforge.net>