48 #define MAX_CONFIG_FILE_SIZE 16384
52 typedef enum _LogLevel {DEBUG, INFO, WARN, ERROR, FATAL} LOG_LEVEL;
58 virtual void write(
const std::string& line) = 0;
59 virtual void close() {}
61 const std::string& name()
const {
68 const std::string _name;
74 Logger(
const std::string, LOG_LEVEL,
int proc_id);
76 void log(LOG_LEVEL,
const std::string msg);
78 void add_appender(
Appender *appender);
81 const std::string name;
82 const LOG_LEVEL level;
84 std::vector<Appender*> appenders;
86 void format_msg(LOG_LEVEL level,
const std::string& msg, std::string& to_format);
95 std::string file_name;
112 std::map<std::string, AppenderBuilder*> app_map;
113 std::map<std::string, Logger*> logger_map;
116 std::map<std::string, std::vector<std::string>*> logger_app_map;
118 int parse_level(
const std::string& str)
const;
120 void create_root_logger(
const std::string& value);
121 void create_logger(
const std::string& key,
const std::string& value);
122 void create_named_logger(
const std::string& name,
const std::string& value);
124 void create_appender(
const std::string& key,
const std::string& value);
125 void create_appender_file(
const std::string& key,
const std::string& value);
126 void create_appender_size(
const std::string& key,
const std::string& value);
127 void create_appender_bidx(
const std::string& key,
const std::string& value);
135 Log4CL* configure(
const std::string& config_file,
int proc_id, boost::mpi::communicator* comm = 0,
int maxConfigFileSize = MAX_CONFIG_FILE_SIZE);
143 static Log4CL* instance();
144 static void configure(
int,
const std::string&, boost::mpi::communicator* comm = 0,
int maxConfigFileSize = MAX_CONFIG_FILE_SIZE);
145 static void configure(
int);
147 Logger& get_logger(std::string logger_name);
156 std::map<std::string, Logger*> logger_map;
157 std::vector<Appender *> appenders;