Lumberjack User Documentation¶
Lumberjack, named because it cuts down logs, is a C++ library that provides scalable logging while reducing the amount of messages written out the screen or file system.
Introduction¶
Lumberjack was created to provide scalable logging with a simple programming model while allowing developers to customize its behavior. It is named Lumberjack because it cuts down logs. It uses MPI and a scalable binary tree reduction scheme to combine duplicate messages and limit output to only the root node.
Requirements¶
- MPI - MPI is fundamental to Lumberjack and without MPI, Lumberjack is not useful.
- C++11 - Required for compiling Lumberjack
Code Guarding¶
You tell if Axom was built with Lumberjack enabled by using the following include and compiler define:
#include "axom/config.hpp"
#ifdef AXOM_USE_LUMBERJACK
// Lumberjack code
#endif
Classes¶
Basic¶
- Lumberjack - Performs all high level functionality for the Lumberjack library.
- Message - Holds all information pertaining to a Message.
Communicators¶
Handles all node-to-node Message passing.
- Communicator - Abstract base class that all Communicators must inherit from.
- BinaryTreeCommunicator - Main Communicator that is implemented with a scalable Binary Tree scheme
- RootCommunicator - non-scalable communication scheme that all nodes connect to the root node. This is given for diagnostic purposes only.
Combiners¶
Handles Message combination and tests whether Message classes should be combined.
- Combiner - Abstract base class that all Combiners must inherit from.
- TextEqualityCombiner - Combines Message classes that have equal Text member variables.
Contents: