# Logging PyLith includes `pylith::utils::EventLogger` as a high-level interface for event logging with PETSc. We create local `Events` classes within the C++ implementation files (`*.cc`) to create variables that hold the event ids. This streamlines logging events within the C++ code. We identify events using variables rather than strings, which means that typos in names are detected at compile time rather than at runtime. Refer to the `_Problem::Events` class near the top of `libsrc/pylith/problems/Problem.cc` for an example of how we implement event logging. We name events in PyLith C++ code following the template `PL:CLASS:METHOD` (C++ namespace style but reducing `::` to `:` to reduce the length of the string) in which we are logging method `METHOD` in C++ class `CLASS`. In the PyLith Python code, we follow the template `PL.CLASS.METHOD`.