sogno-platform / dpsim

Real-time power system simulator including powerflow, (dynamic) phasors and EMT
https://sogno.energy/dpsim/
Mozilla Public License 2.0
67 stars 49 forks source link

Log at debug level #300

Open georgii-tishenin opened 1 month ago

georgii-tishenin commented 1 month ago

Issue Summary

It is somewhat challenging to configure logging at the debug level. Additionally, there seems to be a mismatch between the intended and actual use of the Logger class.

Example Scenario

I am working with the DP_VS_RL1 example and I want to see the SPDLOG_LOGGER_DEBUG messages in the log files of components and the solver. I have implemented this in the log-at-debug-level branch.

Steps Taken:

  1. Set debug logging level for components and simulation objects in the DP_VS_RL1 example.
    • This step is intuitive.
  2. Set SPDLOG_ACTIVE_LEVEL to DEBUG in Logger.h.
    • This step is less intuitive. But I do understand this is necessary to compile out debug logging statements for performance reasons.
  3. Set log level for mSLog in TopologicalPowerComp and Solver.
    • This step is not intuitive to me and suggests a mismatch between the intended and actual use of the Logger class by TopologicalPowerComp, Solver, and other classes.

Identified Mismatch

Suggestions for Improvement

  1. Eliminate the need for Step 3.

    • Either adjust the Logger class or it's usage, so that the log level is set appropriately when creating or retrieving a spdlog::logger object.
  2. Address the less intuitive aspects of Step 2:

    • Document the need to set SPDLOG_ACTIVE_LEVEL to DEBUG.
    • Automatically set SPDLOG_ACTIVE_LEVEL to DEBUG for Debug builds.

Discussion What do you think? I look forward to your feedback and discussion on these points.

leonardocarreras commented 1 month ago

There was an older effort in #236 to improve the logging and have some potential solutions that are relevant to here, and that is also the type of change that somehow solves #239 if we have more than one package