peerplays-fc/include/fc/log/logger_config.hpp
2019-04-04 17:59:51 +02:00

49 lines
1.6 KiB
C++

#pragma once
#include <fc/log/logger.hpp>
namespace fc {
class path;
struct appender_config {
appender_config(const string& name = "",
const string& type = "",
variant args = variant()) :
name(name),
type(type),
args(std::move(args)),
enabled(true)
{}
string name;
string type;
variant args;
bool enabled;
};
struct logger_config {
logger_config(const std::string& name = ""):name(name),enabled(true),additivity(false){}
string name;
ostring parent;
/// if not set, then parents level is used.
fc::optional<log_level> level;
bool enabled;
/// if any appenders are sepecified, then parent's appenders are not set.
bool additivity;
std::vector<string> appenders;
logger_config& add_appender( const string& s );
};
struct logging_config {
static logging_config default_config();
std::vector<string> includes;
std::vector<appender_config> appenders;
std::vector<logger_config> loggers;
};
void configure_logging( const fc::path& log_config );
bool configure_logging( const logging_config& l );
}
#include <fc/reflect/reflect.hpp>
FC_REFLECT( fc::appender_config, (name)(type)(args)(enabled) )
FC_REFLECT( fc::logger_config, (name)(parent)(level)(enabled)(additivity)(appenders) )
FC_REFLECT( fc::logging_config, (includes)(appenders)(loggers) )