| 123456789101112131415161718192021222324252627282930313233343536373839 |
- //
- // pattern_layout.cxx
- // logging
- //
- // Created by Sam Jaffe on 4/4/19.
- //
- #include "resource_factory/prototype_factory.hpp"
- #include "logger/detail/layout.h"
- #include "logger/format.h"
- #include "logger/log_manager.h"
- #include "logger/properties.h"
- using namespace logging;
- struct pattern_layout : public layout {
- static std::shared_ptr<layout> create(properties const &);
-
- pattern_layout(std::string const & fmt);
- void format(std::ostream & os, logpacket const & pkt) const override;
-
- class format formatter;
- };
- std::shared_ptr<layout> pattern_layout::create(properties const & props) {
- return std::make_shared<pattern_layout>(props["pattern"]);
- }
- pattern_layout::pattern_layout(std::string const & fmt) :
- formatter(format::parse_format_string(fmt)) {}
- void pattern_layout::format(std::ostream & os, logpacket const & pkt) const {
- os << formatter.process(pkt);
- }
- namespace {
- bool _ = layouts::instance().bind("PatternLayout", pattern_layout::create);
- }
|