Slic User Guide

Slic provides a light-weight, modular and extensible logging infrastructure that simplifies logging application messages.

API Documentation

Doxygen generated API documentation can be found here: API documentation

Key Features

  • Interoperability across the constituent libraries of an application. Messages logged by an application and any of its libraries using Slic have a unified format and routed to a centralized output destination.

  • Customizable Log Message Format to suit application requirements.

  • Customizable handling and filtering of log messages by extending the Log Stream base class.

  • Built-In Log Streams to support common logging use cases, e.g., log to a file or console.

  • Native integration with Lumberjack for logging and filtering of messages at scale.

  • Fortran bindings that provide an idiomatic API for Fortran applications.


Slic is designed to be light-weight and self-contained. The only requirement for using Slic is a C++11 compliant compiler. However, to use Slic in the context of a distributed parallel application and in conjunction with Lumberjack, support for building with MPI is provided.

For further information on how to build the Axom Toolkit, consult the Axom Quick Start Guide.

About this Guide

This guide presents core concepts, key capabilities, and guiding design principles of Slic’s Component Architecture. To get started with using Slic quickly within an application, see the Getting Started with Slic section. For more detailed information on the interfaces of the various classes and functions in Slic, developers are advised to consult the Slic Doxygen API.

Additional questions, feature requests or bug reports on Slic can be submitted by creating a new issue on Github or by sending e-mail to the Axom Developers mailing list at