// // properties.cpp // logger // // Created by Sam Jaffe on 10/3/15. // // #include "properties.hpp" /* { {"pattern",{{},"%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"}} }, "PatternLayout" } */ namespace logging { namespace { properties _property(std::map const& m) { return properties{properties::OBJECT, m, {}, {}}; } properties _list(std::vector const& l) { return properties{properties::ARRAY, {}, l, {}}; } properties _value(std::string const& s) { return properties{properties::STRING, {}, {}, s}; } } /* * %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n * * %d{fmt} := date(format) * %t := thread * %-5level := level (max 5char, align right) * %logger{36} := logsource (max 36char) * %msg := log message * %n := platform-specific line separator * */ properties const STDOUT_DEFAULT_SCHEMA{ _property({ {"type", _value("Console")}, {"name", _value("Console")}, {"target", _value("SYSTEM_OUT")}, { "data", _list({ _property({ {"type", _value("PatternLayout")}, {"pattern", _value("%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n")} }) }) } }) }; properties const LOGGER_DEFAULT_SCHEMA { _property({ {"type", _value("Root")}, {"level", _value("Error")}, { "data", _list({ _property({ {"type", _value("AppenderRef")}, {"ref", _value("Console")} }) }) } }) }; properties const DEFAULT_SCHEMA{ _property({ {"Appenders",_list({STDOUT_DEFAULT_SCHEMA})}, {"Loggers",_list({LOGGER_DEFAULT_SCHEMA})} }) }; }