2013-02-05 04:08:48 +00:00
|
|
|
#pragma once
|
2013-06-05 19:19:00 +00:00
|
|
|
#include <fc/log/logger.hpp>
|
2013-02-05 04:08:48 +00:00
|
|
|
|
|
|
|
|
namespace fc {
|
|
|
|
|
class path;
|
|
|
|
|
struct appender_config {
|
2014-09-25 12:57:31 +00:00
|
|
|
appender_config(const string& name = "",
|
|
|
|
|
const string& type = "",
|
|
|
|
|
variant args = variant()) :
|
|
|
|
|
name(name),
|
|
|
|
|
type(type),
|
|
|
|
|
args(fc::move(args)),
|
|
|
|
|
enabled(true)
|
|
|
|
|
{}
|
2013-06-05 19:19:00 +00:00
|
|
|
string name;
|
|
|
|
|
string type;
|
|
|
|
|
variant args;
|
|
|
|
|
bool enabled;
|
2013-02-05 04:08:48 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct logger_config {
|
2014-09-25 12:57:31 +00:00
|
|
|
logger_config(const fc::string& name = ""):name(name),enabled(true),additivity(false){}
|
2013-02-05 04:08:48 +00:00
|
|
|
string name;
|
|
|
|
|
ostring parent;
|
|
|
|
|
/// if not set, then parents level is used.
|
2013-06-05 19:19:00 +00:00
|
|
|
fc::optional<log_level> level;
|
2013-02-05 04:08:48 +00:00
|
|
|
bool enabled;
|
|
|
|
|
/// if any appenders are sepecified, then parent's appenders are not set.
|
|
|
|
|
bool additivity;
|
2013-06-27 18:19:08 +00:00
|
|
|
std::vector<string> appenders;
|
2013-02-05 05:06:16 +00:00
|
|
|
|
|
|
|
|
logger_config& add_appender( const string& s );
|
2013-02-05 04:08:48 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct logging_config {
|
|
|
|
|
static logging_config default_config();
|
2013-06-27 18:19:08 +00:00
|
|
|
std::vector<string> includes;
|
|
|
|
|
std::vector<appender_config> appenders;
|
|
|
|
|
std::vector<logger_config> loggers;
|
2013-02-05 04:08:48 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
void configure_logging( const fc::path& log_config );
|
|
|
|
|
bool configure_logging( const logging_config& l );
|
|
|
|
|
}
|
|
|
|
|
|
2013-06-05 19:19:00 +00:00
|
|
|
#include <fc/reflect/reflect.hpp>
|
2013-02-05 04:08:48 +00:00
|
|
|
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) )
|