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.
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.
- MPI - MPI is fundamental to Lumberjack and without MPI, Lumberjack is not useful.
- C++11 - Required for compiling Lumberjack
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
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.
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.