File indexing completed on 2026-01-09 09:25:44
0001
0002
0003
0004
0005
0006
0007
0008
0009 #include "Acts/Utilities/Logger.hpp"
0010
0011 #include <fstream>
0012 #include <memory>
0013
0014
0015 void processSomething(int value,
0016 const Acts::Logger &logger = Acts::getDummyLogger()) {
0017 ACTS_DEBUG("Processing value: " << value);
0018 ACTS_INFO("Process completed successfully");
0019 }
0020
0021 void optionalLogging(const Acts::Logger &logger = Acts::getDummyLogger()) {
0022 ACTS_VERBOSE("This message will be discarded with dummy logger");
0023
0024 }
0025
0026 int main([[maybe_unused]] int argc, [[maybe_unused]] char **argv) {
0027
0028 struct MyClass {
0029 std::unique_ptr<const Acts::Logger> m_logger;
0030 const Acts::Logger &logger() const { return *m_logger; }
0031
0032 MyClass(std::unique_ptr<const Acts::Logger> logger)
0033 : m_logger(std::move(logger)) {}
0034
0035 void doWork() { ACTS_INFO("Doing work in MyClass"); }
0036 };
0037
0038
0039 MyClass obj(Acts::getDefaultLogger("MyClass", Acts::Logging::INFO));
0040 obj.doWork();
0041
0042
0043
0044
0045 auto customLogger = Acts::getDefaultLogger("Processor", Acts::Logging::DEBUG);
0046 processSomething(42, *customLogger);
0047
0048
0049 processSomething(100);
0050
0051
0052
0053
0054 optionalLogging();
0055
0056
0057 auto debugLogger = Acts::getDefaultLogger("Debug", Acts::Logging::VERBOSE);
0058 optionalLogging(*debugLogger);
0059
0060
0061 {
0062 auto verboseLogger =
0063 Acts::getDefaultLogger("ComponentB", Acts::Logging::VERBOSE);
0064 const auto &logger = *verboseLogger;
0065
0066 int variable = 10;
0067 std::string errorMsg = "File not found";
0068
0069
0070 ACTS_VERBOSE("Detailed trace information");
0071 ACTS_DEBUG("Debug info: " << variable);
0072 ACTS_INFO("Operation completed");
0073 ACTS_WARNING("Potential issue detected");
0074 ACTS_ERROR("Operation failed: " << errorMsg);
0075 ACTS_FATAL("Critical failure");
0076
0077 }
0078
0079
0080
0081 auto baseLogger = Acts::getDefaultLogger("Fitter", Acts::Logging::INFO);
0082
0083
0084 auto clonedLogger = baseLogger->clone();
0085
0086
0087 auto renamedLogger = baseLogger->clone("NewFitter");
0088
0089
0090 auto verboseClone = baseLogger->clone(Acts::Logging::VERBOSE);
0091
0092
0093 auto customClone = baseLogger->clone("CustomFitter", Acts::Logging::DEBUG);
0094
0095
0096 auto actorLogger = baseLogger->cloneWithSuffix("Actor");
0097
0098
0099
0100 auto debugActorLogger =
0101 baseLogger->cloneWithSuffix("Actor", Acts::Logging::DEBUG);
0102
0103
0104
0105 auto updaterLogger = baseLogger->cloneWithSuffix("Updater");
0106 auto smootherLogger = baseLogger->cloneWithSuffix("Smoother");
0107
0108
0109
0110
0111 struct TrackFitter {
0112 std::unique_ptr<const Acts::Logger> m_logger;
0113 std::unique_ptr<const Acts::Logger> m_actorLogger;
0114 std::unique_ptr<const Acts::Logger> m_updaterLogger;
0115
0116 explicit TrackFitter(std::unique_ptr<const Acts::Logger> logger)
0117 : m_logger(std::move(logger)),
0118 m_actorLogger(m_logger->cloneWithSuffix("Actor")),
0119 m_updaterLogger(m_logger->cloneWithSuffix("Updater")) {}
0120 };
0121
0122
0123
0124
0125
0126 auto baseDetectorLogger =
0127 Acts::getDefaultLogger("Detector", Acts::Logging::INFO);
0128 auto surfaceLogger =
0129 baseDetectorLogger->clone("Surface", Acts::Logging::DEBUG);
0130 auto volumeLogger =
0131 baseDetectorLogger->clone("Volume", Acts::Logging::WARNING);
0132
0133
0134
0135
0136 auto productionLogger =
0137 Acts::getDefaultLogger("Production", Acts::Logging::WARNING);
0138 auto testLogger = productionLogger->clone("Test", Acts::Logging::VERBOSE);
0139
0140
0141
0142
0143 std::ofstream logFile("mylog.txt");
0144 auto fileLogger =
0145 Acts::getDefaultLogger("Component", Acts::Logging::INFO, &logFile);
0146
0147 }
0148
0149
0150 void myFunction() {
0151 auto myLogger = Acts::getDefaultLogger("Production", Acts::Logging::WARNING);
0152 ACTS_LOCAL_LOGGER(std::move(myLogger));
0153
0154 ACTS_VERBOSE("hello world!");
0155 }
0156
0157
0158
0159 namespace Acts {
0160 std::unique_ptr<const Logger> getDefaultLogger(const std::string &,
0161 const Logging::Level &,
0162 std::ostream *);
0163 }
0164