diff --git a/spectrum/src/sample.cfg b/spectrum/src/sample.cfg index 6d512fb9..6b16b3c2 100644 --- a/spectrum/src/sample.cfg +++ b/spectrum/src/sample.cfg @@ -15,6 +15,11 @@ backend=../../backends/libpurple/spectrum_libpurple_backend protocol=prpl-msn #protocol=prpl-icq +[logging] +#config=logging.cfg # log4cxx/log4j logging configuration file +#backend_config=backend_logging.cfg # log4cxx/log4j logging configuration file for backends +#config=test.cfg + [database] type = sqlite3 # or "none" without database backend database = test.sql diff --git a/spectrum/src/sample2.cfg b/spectrum/src/sample2.cfg index 9cd0b64b..9b9365b0 100644 --- a/spectrum/src/sample2.cfg +++ b/spectrum/src/sample2.cfg @@ -15,6 +15,10 @@ protocol=prpl-jabber #protocol=prpl-msn #protocol=prpl-icq +[logging] +#config=logging.cfg # log4cxx/log4j logging configuration file +#backend_config=backend_logging.cfg # log4cxx/log4j logging configuration file for backends + [database] type = none # "sqlite3" or "none" without database backend database = test.sql diff --git a/src/config.cpp b/src/config.cpp index 2ac7836b..a94dbb9e 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -53,6 +53,8 @@ bool Config::load(const std::string &configfile, boost::program_options::options ("database.type", value()->default_value("none"), "Database type.") ("database.database", value()->default_value(""), "Database used to store data") ("database.prefix", value()->default_value(""), "Prefix of tables in database") + ("logging.config", value()->default_value(""), "Path to log4cxx config file which is used for Spectrum 2 instance") + ("logging.backend_config", value()->default_value(""), "Path to log4cxx config file which is used for backends") ; store(parse_config_file(ifs, opts), m_variables); diff --git a/src/transport.cpp b/src/transport.cpp index 965a2688..ee61e876 100644 --- a/src/transport.cpp +++ b/src/transport.cpp @@ -31,6 +31,7 @@ #include "log4cxx/logger.h" #include "log4cxx/consoleappender.h" #include "log4cxx/patternlayout.h" +#include "log4cxx/propertyconfigurator.h" using namespace Swift; using namespace boost; @@ -68,10 +69,13 @@ Component::Component(Swift::EventLoop *loop, Config *config, Factory *factory) { m_factory = factory; m_loop = loop; -// BasicConfigurator::configure(); - - LoggerPtr root = Logger::getRootLogger(); - root->addAppender(new ConsoleAppender(new PatternLayout("%d %-5p %c: %m%n"))); + if (CONFIG_STRING(m_config, "logging.config").empty()) { + LoggerPtr root = Logger::getRootLogger(); + root->addAppender(new ConsoleAppender(new PatternLayout("%d %-5p %c: %m%n"))); + } + else { + log4cxx::PropertyConfigurator::configure(CONFIG_STRING(m_config, "logging.config")); + } m_jid = Swift::JID(CONFIG_STRING(m_config, "service.jid"));