Synesis Software Training Courses

Pantheios, Advanced (part 2 of 2)

Pantheios is the world's fastest and most robust C/C++ diagnostic logging API library. Incorporating it into your software systems will increase their reliability, and, depending on the application area, has the potential to significantly improve their performance.

This course is an example-based guide to getting started with Pantheios.

It builds on the material from the "Pantheios, Beginners" training course.


Intermediate. Assumes prior experience of C++.


Presentation, with tutorial activities.


2 days: lecture + tutorial work

Material Covered (for the 2-day variant of the course)

  • Brief refresher on assumed knowledge (covered in "Pantheios, Beginners" course)
    • Architecture
    • C++ API & Application Layer
    • C API
    • Stock inserters
    • Stock Front-ends
    • Stock Back-ends
    • Multiplexing
  • Customising the Pantheios distribution
    • Regenerating the application layer function templates
    • Suppressing Exceptions and RTTI (for embedded systems)
    • Suppressing namespace
    • Reducing compile-time costs
      • Suppressing inclusion of adaptors for third-party components
      • Suppressing/Selecting parameter ranges
      • Suppressing level-specific Application Layer function templates
  • Understanding and Controlling Library Initialisation
    • The Pantheios Initialisation Life-cycle
    • Automatic Initialisation
    • Manual Initialisation
    • Suppressing/Forcing Automatic Initialisation
  • Adapting application types to the Application Layer
    • Custom Inserters
      • Minimising Memory and Processing
      • The Lazy Inserter Pattern
      • Pseudo-Identifiers
    • Defining efficient String Access Shims
      • Avoiding the Heap
      • Robustness
  • Defining and using custom severity levels
  • Implementing a Custom Front-end
    • Responsibilities
    • Threading
    • Extended Severity Information
  • Implementing a Custom Back-end
    • Responsibilities
    • Threading
    • Back-end Identity
    • Minimising/Avoiding statement processing costs
    • Using
  • Pantheios as a pure diagnostic logging API library:
    • Wrapping the diagnostic logging facilities of the Adaptive Communications Environment (ACE)
      • Front-end
      • Back-end
    • Wrapping log4cxx
      • Front-end
      • Back-end
      • Working with Nested Diagnostic Contexts (NDCs)
  • Testing
    • be.test
  • Gotchas & Miscellaneous Valuable Facts
  • Non-trivial Use case examples & implementations