bitz-server  2.0.3
formatter.h
1 //
2 // Copyright(c) 2015 Gabi Melman.
3 // Distributed under the MIT License (http://opensource.org/licenses/MIT)
4 //
5 
6 #pragma once
7 
8 #include "details/log_msg.h"
9 
10 #include <memory>
11 #include <string>
12 #include <vector>
13 
14 namespace spdlog {
15 namespace details {
16 class flag_formatter;
17 }
18 
19 class formatter
20 {
21 public:
22  virtual ~formatter() = default;
23  virtual void format(details::log_msg &msg) = 0;
24 };
25 
26 class pattern_formatter SPDLOG_FINAL : public formatter
27 {
28 public:
29  explicit pattern_formatter(const std::string &pattern, pattern_time_type pattern_time = pattern_time_type::local,
30  std::string eol = spdlog::details::os::default_eol);
31  pattern_formatter(const pattern_formatter &) = delete;
32  pattern_formatter &operator=(const pattern_formatter &) = delete;
33  void format(details::log_msg &msg) override;
34 
35 private:
36  const std::string _eol;
37  const std::string _pattern;
38  const pattern_time_type _pattern_time;
39  std::vector<std::unique_ptr<details::flag_formatter>> _formatters;
40  std::tm get_time(details::log_msg &msg);
41  void handle_flag(char flag);
42  void compile_pattern(const std::string &pattern);
43 };
44 } // namespace spdlog
45 
46 #include "details/pattern_formatter_impl.h"
Definition: formatter.h:19
Definition: async_logger.h:26
Definition: log_msg.h:16