示例#1
0
文件: main.cpp 项目: keyhom/newkio
int main(void) {

    configureLogger();

    LOG4CPP_LOGGER("::Main");
    if (logger.isInfoEnabled())
        logger.infoStream() << "Application start now ...";

    signal(SIGTERM, shutdown_all);
    signal(SIGINT, shutdown_all);

    MyHandler handler;
    newkio::codec::textline::TextLineEncoder textLineEncoder;
    newkio::codec::textline::TextLineDecoder textLineDecoder;
    newkio::filters::TextLineCodecFilter textLineCodecFilter(textLineEncoder, textLineDecoder);
//    newkio::filters::ProtocolCodecFilter<std::string, BufferData, void*, newkio::codec::textline::Context> protocolCodecFilter(textLineEncoder, textLineDecoder);

    server = new newkio::uv::UVTcpServer(config);
    newkio::filters::LoggingFilter logging_filter;
    server->getFilters().push_back(&logging_filter);
    server->getFilters().push_back(&textLineCodecFilter);
    server->setHandler(handler);

    listen();

    if (logger.isDebugEnabled())
        logger.debug("server start at %d%03d", (newkio::Timestamp()).getSeconds(), (newkio::Timestamp()).getMilliSeconds());
    server->runForever();

    std::cout << "Exit now." << std::endl;

    return 0;
}
void LoggingConfigurator::configureLoggers(AbstractConfiguration* pConfig)
{
    typedef std::map<std::string, AutoPtr<AbstractConfiguration> > LoggerMap;

    AbstractConfiguration::Keys loggers;
    pConfig->keys(loggers);
    // use a map to sort loggers by their name, ensuring initialization in correct order (parents before children)
    LoggerMap loggerMap;
    for (AbstractConfiguration::Keys::const_iterator it = loggers.begin(); it != loggers.end(); ++it)
    {
        AutoPtr<AbstractConfiguration> pLoggerConfig(pConfig->createView(*it));
        loggerMap[pLoggerConfig->getString("name", "")] = pLoggerConfig;
    }
    for (LoggerMap::iterator it = loggerMap.begin(); it != loggerMap.end(); ++it)
    {
        configureLogger(it->second);
    }
}
/******************************************************************************
* AUTHOR        : Thanigai 
* DATE          : 29-JUL-2005
* NAME          : initializeLipiEngine
* DESCRIPTION   : Reads the lipiengine.cfg and store the AVP map into 
*				  the map variable "m_LipiEngineConfigEntries"
* ARGUMENTS     : 
* RETURNS       : 0 on success other values error
* NOTES         :
* CHANGE HISTROY
* Author            Date                Description of change
******************************************************************************/
int LTKLipiEngineModule::initializeLipiEngine()
{
	//Log messages after call to configureLogger()	
	
	string temp;
	int errorCode;
	
	if(m_strLipiRootPath == "")
	{
		LTKReturnError(ELIPI_ROOT_PATH_NOT_SET);	// PATH not set
	}

	temp = m_strLipiRootPath + SEPARATOR + "projects" + SEPARATOR + 
		   LIPIENGINE_CFG_STRING;
	
	//Read the logical name mapping file from lipiengine.cfg file;
	try
	{
		m_LipiEngineConfigEntries = new LTKConfigFileReader(temp);

	}
	catch(LTKException e)
	{
		// display warning to the user and continue with default values
		cout << " Could not open file : " << temp << endl <<
		        "proceeding with defaults" << endl;
	}

    errorCode = configureLogger();	// Configure the logger

	if(errorCode !=SUCCESS)
	{
		LTKReturnError(errorCode);
	}
	else
	{
		LOG(LTKLogger::LTK_LOGLEVEL_DEBUG)<< 
			"LTKLipiEngineModule::initializeLipiEngine()" << endl;
	}

	return SUCCESS;
}
示例#4
0
void LogConfigDialog::saveLogConfiguration()
{
  QString fileExtension;
  QString s = QFileDialog::getSaveFileName(this, tr("Save To"), getConfigFilePath(), tr("XML(*.xml);;Text(*.txt);;All(*.*)"), &fileExtension, QFileDialog::DontUseNativeDialog);
  if (s.length() > 0)
  {
    if (!s.contains('.'))
    {
      if (fileExtension.compare(tr("XML(*.xml)"), Qt::CaseInsensitive) == 0)
      {
        s = s + ".xml";
      }
      else if (fileExtension.compare(tr("Text(*.txt)"), Qt::CaseInsensitive) == 0)
      {
        s = s + ".txt";
      }
    }
    setConfigFilePath(s);
    QFile file(s);
    if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
    {
      QMessageBox::warning(this, tr("ERROR"), tr("Failed to open file for writing."));
    }
    else
    {
      QXmlStreamWriter writer(&file);
      if (writer.hasError())
      {
        QMessageBox::warning(this, tr("ERROR"), tr("Failed to create output stream for writing logger."));
      }
      else
      {
        writer.setAutoFormatting(true);
        SimpleLoggerADP logger;
        configureLogger(logger);
        logger.write(writer);
      }
      file.close();
    }
  }
}