Orion
high-rate readout
logger.hpp
Go to the documentation of this file.
1 
11 #pragma once
12 
13 #include "itk/logger.hpp"
14 
15 #include "spdlog/spdlog.h"
16 
17 #include <string>
18 
19 
20 namespace itk::logger {
21 
22  std::shared_ptr<spdlog::logger> make_log(const std::string& logname);
23 
24 
25  class CoreLogger : public intf::CoreLogger {
26  public:
27 
28  CoreLogger(const std::string& log_name);
29 
30  void log_msg(log_level_t level, const std::string &msg) override {
31  logger->log((spdlog::level::level_enum)level, msg);
32  }
33 
34  bool should_log(log_level_t level) const override {
35  return logger->should_log((spdlog::level::level_enum)level);
36  }
37 
38  void set_level(log_level_t level) override {
39  printf("set_level | log: %lx, level: %d\n", uint64_t(&logger), level);
40  logger->set_level((spdlog::level::level_enum)level);
41  }
42 
43  log_level_t get_level() const override {
44  return (log_level_t) logger->level();
45  }
46 
47  void set_pattern(const std::string& pattern) override {
48  logger->set_pattern(pattern);
49  }
50 
51  protected:
52  std::shared_ptr<spdlog::logger> logger;
53  };
54 
55 } // itk::logger
void log_msg(log_level_t level, const std::string &msg) override
Log a message.
Definition: logger.hpp:30
log_level_t get_level() const override
Properties.
Definition: logger.hpp:43
void set_pattern(const std::string &pattern) override
Set logger message pattern.
Definition: logger.hpp:47
void set_level(log_level_t level) override
Set logging level.
Definition: logger.hpp:38
bool should_log(log_level_t level) const override
Check if message with specified log level will be logged.
Definition: logger.hpp:34
Logger definitions.
log_level_t
Logger level enumeration.
Definition: logger.hpp:17