#include <logger_util.hh>
Inheritance diagram for lestes::msg::formatter_factory:

Static Public Member Functions | |
| static ptr< logger_formatter > | create_formatter (lstring name, lstring parameter) |
Private Member Functions | |
| formatter_factory (const formatter_factory &) | |
Definition at line 84 of file logger_util.hh.
| lestes::msg::formatter_factory::formatter_factory | ( | const formatter_factory & | ) | [private] |
| ptr< logger_formatter > lestes::msg::formatter_factory::create_formatter | ( | lstring | name, | |
| lstring | parameter | |||
| ) | [static] |
Definition at line 66 of file logger_util.cc.
References lestes::msg::conjunct_formatter::create(), lestes::msg::color_formatter::create(), and lestes::msg::plain_formatter::instance().
Referenced by lestes::msg::logger_configurator::configure().
00067 { 00068 if (name == "color" || name == "colorific") 00069 return color_formatter::create(parameter); 00070 else if (name == "simple" || name == "plain" || name == "") 00071 return plain_formatter::instance(); 00072 else if (name == "shortname") 00073 return ::lestes::msg::shortname_formatter::instance(); 00074 else if (name == "fullname") 00075 return ::lestes::msg::fullname_formatter::instance(); 00076 else if (name[0] == '(') { 00077 bool is_parameter_list = parameter[0] == '('; 00078 lstring::size_type sz = 1, psz = is_parameter_list; 00079 lstring::size_type nsz, npsz = parameter.size(); 00080 ptr < logger_formatter > lf = NULL; 00081 for ( ; (nsz = name.find_first_of(" )", sz)) != lstring::npos ; sz = nsz+1) { 00082 lstring formater = name.substr(sz,nsz - sz); 00083 lstring param; 00084 ptr < logger_formatter > nlf; 00085 if (is_parameter_list) { 00086 npsz = parameter.find_first_of(" )",psz); 00087 if (npsz != lstring::npos) { 00088 param = parameter.substr(psz,npsz-psz); 00089 psz = npsz + 1; 00090 } else 00091 param = ""; 00092 } else 00093 param = parameter; 00094 00095 nlf = create_formatter(formater, param); 00096 00097 if (lf) 00098 lf = conjunct_formatter::create(lf, nlf); 00099 else 00100 lf = nlf; 00101 } 00102 return lf; 00103 } 00104 /*else if (name == "xml") 00105 return xml_formatter(parameter); */ 00106 ::std::cerr << "unknown formatter (" << name << ")" << ::std::endl; 00107 return plain_formatter::instance(); 00108 }
1.5.1-20070107