void tst_QLogSystem::qWarningOutput() { QFETCH(QString, fstr); QFETCH(int, intIn); QFETCH(QString, chIn); QFETCH(double, dlIn); QFETCH(QString, expected); FileLogger<LvlLogPrefix>* fileLogger = new FileLogger<LvlLogPrefix>("./LoggersTest.log"); fileLogger->setMinLogLvl(LlDbg); QString err_msg; QVERIFY2(fileLogger->isReady(err_msg), "File logger is not ready with local dir."); QVERIFY2(err_msg.isEmpty(), "File logger has obtained error message with local dir"); LogSystem::getInstance().addLogger(fileLogger); qWarning(qPrintable(fstr), intIn, qPrintable(chIn), dlIn); LogSystem::getInstance().clear(); QFile file("./LoggersTest.log"); QVERIFY2(file.open(QFile::ReadOnly), "Could not open log file for reading"); QByteArray dataBuf= file.readLine(); QCOMPARE(QString(dataBuf.data()), expected); file.close(); }
OutputLogDevice *SearchEngineLog::CreateLog(int device, ...) { va_list args; const uni_char *fname; OpFileFolder folder; FileLogger *flogger; switch (device & 255) { case SearchEngineLog::File: case SearchEngineLog::FolderFile: { if ((flogger = OP_NEW(FileLogger, ((device & SearchEngineLog::LogOnce) != 0))) == NULL) return NULL; va_start(args, device); fname = va_arg(args, const uni_char *); if ((device & 255) == SearchEngineLog::FolderFile) folder = (OpFileFolder)va_arg(args, int); else folder = OPFILE_ABSOLUTE_FOLDER; va_end(args); if (OpStatus::IsError(flogger->Open((device & SearchEngineLog::FOverwrite) != 0, fname, folder))) { OP_DELETE(flogger); return NULL; } return flogger; } }
void OnFileLoggerStartEvent::onLoggerStart(Logger * logger) { FileLogger* fileLogger = dynamic_cast<FileLogger*>(logger); fileLogger->setFilename(filename.c_str()); fileLogger->setFiletype(filetype.c_str()); fileLogger->setID(ID); }
FileLogger *FileLogger::create(QString filename, QMutex *mutex) { QByteArray ba = filename.toLocal8Bit(); const char *file = ba.constData(); FileLogger *logger = dynamic_cast<FileLogger *>(loggerMap.value(filename, NULL)); if (logger) return logger; // Need to add a new FileLogger mutex->unlock(); // inserts into loggerMap logger = new FileLogger(file); mutex->lock(); if (!logger->setupZMQSocket()) { delete logger; return NULL; } ClientList *clients = new ClientList; logRevClientMap.insert(logger, clients); return logger; }
int main(int argc, char** argv) { printf("%s %s, Copyright 2015 by OneXSoft\n\n", APP_NAME, APP_VERSION); const char* cfgFile = "onecache.xml"; if (argc == 1) { LOG(Logger::Message, "No config file specified. using the default config(%s)", cfgFile); } if (argc >= 2) { cfgFile = argv[1]; } CRedisProxyCfg* cfg = CRedisProxyCfg::instance(); if (!cfg->loadCfg(cfgFile)) { LOG(Logger::Error, "Failed to read config file"); return 1; } const char* errInfo; if (!CRedisProxyCfgChecker::isValid(cfg, errInfo)) { LOG(Logger::Error, "Invalid configuration: %s", errInfo); return 1; } FileLogger fileLogger; if (fileLogger.setFileName(cfg->logFile())) { LOG(Logger::Message, "Using the log file(%s) output", fileLogger.fileName()); Logger::setDefaultLogger(&fileLogger); } GlobalLogOption::__debug = cfg->debug(); const char* pidfile = cfg->pidFile(); bool pidfile_enabled = (strlen(pidfile) > 0); if (pidfile_enabled) { createPidFile(pidfile); } //Background if (cfg->daemonize()) { NonPortable::daemonize(); } //Guard if (cfg->guard()) { NonPortable::guard(startOneCache, APP_EXIT_KEY); } else { startOneCache(); } if (pidfile_enabled) { remove(pidfile); } return 0; }
void Main::run() { PMOptixRenderer renderer; FileLogger logger; try { QString logPath = QFileInfo(filePath).dir().absoluteFilePath("log.txt"); logger = FileLogger(logPath); } catch(std::exception &ex) { std::cerr << "Could not initialize logger: " << ex.what() << std::endl; return; } renderer.initialize(device, &logger); Problem problem; try { logger.log("Load definition XML & Scene\n"); problem = Problem::fromFile(&logger, filePath, &renderer); } catch(std::exception& ex){ logger.log("Error reading file: %s\n", ex.what()); emit finished(); return; } try { logger.log("Optimizing\n"); problem.optimize(); }catch(std::exception& ex){ logger.log("Error optimizing: %s\n", ex.what()); } logger.log("Cleaning up\n"); QThreadPool::globalInstance()->waitForDone(); emit finished(); }
bool SoundEngineOpenAL::init(std::string device) { // Create logger FileLogger *logger = new FileLogger; if (logger->init("RaumKlang.htm")) { setLogger(logger); } else { delete logger; setLogger(new ConsoleLogger()); } // Get default device if (device == "") { device = alcGetString(0, ALC_DEFAULT_DEVICE_SPECIFIER); } // Setup OpenAL context ALCdevice *dev = alcOpenDevice(device.c_str()); if (!dev) return false; ALCcontext *context = alcCreateContext(dev, 0); alcMakeContextCurrent(context); if (alcGetError(dev) != ALC_NO_ERROR) return false; // Startup message getLogger()->writeLine(ELL_Information, "RaumKlang 0.0.1 (OpenAL)"); getLogger()->writeLine(ELL_Information, std::string("Device: ") + device); // Create listener listener = new ListenerOpenAL(); // Add stream loaders initStreamLoaders(); // Start update thread running = true; threadstopped = false; startUpdateThread(); return true; }
void tst_QLogSystem::minLogLvl() { FileLogger<LvlLogPrefix>* fileLogger = new FileLogger<LvlLogPrefix>("./LoggersTest.log"); char forbidden[] = "should not be shown!"; QString err_msg; QVERIFY2(fileLogger->isReady(err_msg), "File logger is not ready with local dir."); QVERIFY2(err_msg.isEmpty(), "File logger has obtained error message with local dir"); fileLogger->setMinLogLvl(LlWarning); LogSystem::getInstance().addLogger(fileLogger); LogSystem::getInstance().log(LlInfo, forbidden); LogSystem::getInstance().clear(); QFile file("./LoggersTest.log"); QVERIFY2(file.open(QFile::ReadOnly), "Could not open log file for reading"); QByteArray dataBuf= file.readLine(); file.close(); QVERIFY2(dataBuf.isEmpty(), "The logger has written record with invalid Log Level"); }
void fileLoggerOutPut(const string& message) { //--log message from server msgLog.log(message); msgLog.log("\n---------------------------\n"); //--log localization if ( message[0] == 'S') { stringstream ss; ss << WM->getGameTime() <<' '<< WM->getMyGlobalPos() << ' ' << WM->getMyGlobalVel() <<endl; localizationLog.log(ss.str()); } //--log ball's position if ( message[0] == 'S') { stringstream ss; ss << WM->getGameTime() <<' '<< WM->getBallGlobalPos() << ' ' << WM->getBallGlobalVel() <<endl; ballPosLog.log(ss.str()); } }
void MainWindow::Start() { _ModuleManager = new ModuleManager(this); NeedRestart = false; BrowserFactory = 0; AlreadyShowsMessage = false; TranslateEngine.SetDirectory(":/engine/translate"); TranslateFastExecuteScript.SetDirectory(":/fastexecutescript/translate"); qDebug()<<"Start 020"; bool DataBaseConnectorPreserved = _DataBaseConnector; qDebug()<<"Start 021"; if(!DataBaseConnectorPreserved) { qDebug()<<"Start 022"; _DataBaseConnector = new MongoDatabaseConnector(this); qDebug()<<"Start 023"; _CsvHelper = new CsvHelper(_DataBaseConnector); qDebug()<<"Start 024"; _DataBaseConnector->SetCsvHelper(_CsvHelper); qDebug()<<"Start 025"; _DataBaseState = new DatabaseState(this); qDebug()<<"Start 026"; _DataBaseConnector2 = new MongoDatabaseConnector(_DataBaseState); qDebug()<<"Start 027"; _DataBaseState->SetDatabaseConnector(_DataBaseConnector2); qDebug()<<"Start 028"; connect(_DataBaseConnector,SIGNAL(GroupManipulated()),_DataBaseState,SLOT(Reload())); qDebug()<<"Start 029"; _DataBaseConnector3 = new MongoDatabaseConnector(this); qDebug()<<"Start 030"; } qDebug()<<"Start 031"; LangModel = new LanguageModel(this); TrayNotifier = new SystemTrayNotifier(this); TrayNotifier->Init(); qDebug()<<"Start 032"; Settings = new QSettings("settings.ini",QSettings::IniFormat,this); LogLocation = Settings->value("LogLocation","../../logs").toString(); qDebug()<<"Start 033"; SkinController * skin = new SkinController(); skin->ApplyTheme(Settings->value("Theme","DarkFusion").toString()); skin->deleteLater(); qDebug()<<"Start 034"; Language = Settings->value("DefaultLanguageScript","").toString().toLower(); qDebug()<<"Start 035"; if(Language.isEmpty()) { ScriptLanguageChooserDialog LangDialog; LangDialog.SetLanguageModel(LangModel); if(!LangDialog.exec()) { QTimer::singleShot(50,this,SLOT(Close())); return; } Language = LangDialog.GetLang(); Settings->setValue("DefaultLanguageScript",Language); } qDebug()<<"Start 036"; if(!DataBaseConnectorPreserved) { qDebug()<<"Start 037"; _DataBaseConnector->Init(Language); if(!_DataBaseConnector->Start()) { QEventLoop loop; connect(_DataBaseConnector, SIGNAL(Started()), &loop, SLOT(quit())); loop.exec(); } qDebug()<<"Start 038"; if(_DataBaseConnector->HasDatabase()) { qDebug()<<"Start 039"; if(_DataBaseConnector->WasError()) { QMessageBox::information(0, tr("Database Error"), _DataBaseConnector->GetError()); QTimer::singleShot(50,this,SLOT(Close())); return; } qDebug()<<"Start 040"; if(!_DataBaseConnector2->Start()) { QEventLoop loop; connect(_DataBaseConnector2, SIGNAL(Started()), &loop, SLOT(quit())); loop.exec(); } qDebug()<<"Start 041"; if(_DataBaseConnector2->WasError()) { QMessageBox::information(0, tr("Database Error"), _DataBaseConnector2->GetError()); QTimer::singleShot(50,this,SLOT(Close())); return; } qDebug()<<"Start 042"; if(!_DataBaseConnector3->Start()) { QEventLoop loop; connect(_DataBaseConnector3, SIGNAL(Started()), &loop, SLOT(quit())); loop.exec(); } qDebug()<<"Start 043"; if(_DataBaseConnector3->WasError()) { QMessageBox::information(0, tr("Database Error"), _DataBaseConnector3->GetError()); QTimer::singleShot(50,this,SLOT(Close())); return; } qDebug()<<"Start 044"; _DataBaseState->Reload(); }else { qDebug()<<"Start 045"; ui->actionData->setVisible(false); } }else { qDebug()<<"Start 046"; if(!_DataBaseConnector->HasDatabase()) { ui->actionData->setVisible(false); } } qDebug()<<"Start 047"; TranslateEngine.Translate(Language); TranslateFastExecuteScript.Translate(Language); LangModel->SetScriptAvailableLanguagesString(Language); qDebug()<<"Start 048"; LabelAllLog = new QPushButton(tr("Show all log"),ui->tab_2); TopRightPositioner * AllButtonPositioner = new TopRightPositioner(this); AllButtonPositioner->SetChild(LabelAllLog); AllButtonPositioner->SetParent(ui->tab_2); AllButtonPositioner->Start(); connect(LabelAllLog,SIGNAL(clicked()),this,SLOT(LabelAllLog_Click())); qDebug()<<"Start 049"; movie = new QMovie(":/fastexecutescript/images/loading.gif"); movie->setParent(this); ui->LabelGif->setMovie(movie); movie->start(); qDebug()<<"Start 050"; InitRecources(); qDebug()<<"Start 051"; InitWidgets(); qDebug()<<"Start 052"; IPreprocessor * _Preprocessor = new Preprocessor(this); _Preprocessor->SetEncryptor(new NoneEncryptor(_Preprocessor)); qDebug()<<"Start 053"; XmlResourceController loader; //Load from file loader.SetFileName("project.xml"); qDebug()<<"Start 063"; //Find actual and default files location QDir dir(QCoreApplication::applicationDirPath()); QString ActualFilePath = dir.absoluteFilePath(QString("./Actual") + QString(".xml")); QString DefaultFilePath = ActualFilePath + ".default.xml"; qDebug()<<"Start 065"; //Delete actual if defaults not exists if(!QFile::exists(DefaultFilePath) && QFile::exists(ActualFilePath)) { QFile(ActualFilePath).remove(); } qDebug()<<"Start 066"; Res->FromViewToModel(&loader); this->setWindowTitle(QString("%1(%2)").arg(loader.GetScriptName()).arg(loader.GetScriptVersion())); bool NeedToUseAdditionalSettings = Settings->value("RenderMethodVisible","false").toString().toLower() == "true"; qDebug()<<"Start 067"; AdditionalSettingsWidgets AdditionalSettingsStatic; AdditionalSettings = &AdditionalSettingsStatic; qDebug()<<"Start 068"; if(NeedToUseAdditionalSettings) AdditionalSettings->SetDefault(Settings->value("DefaultWorker").toString()); qDebug()<<"Start 069"; XmlResourceController XmlActualStatic; XmlResourceController *XmlActual = &XmlActualStatic; qDebug()<<"Start 070"; //Load From File XmlActual->SetFileName(ActualFilePath); qDebug()<<"Start 071"; if(true/*Res->NeedToFillByUser()*/) { //Create dialog AskUserForResourcesDialog ask; Ask = &ask; if(Settings->value("HideLanguageChooser",false).toBool()) { Ask->RemoveLanguageChooser(); } Ask->setWindowTitle(QString("%1(%2)").arg(loader.GetScriptName()).arg(loader.GetScriptVersion())); ask.setModal(true); //Update with actual settings { Resources ResActual; ResActual.FromViewToModel(XmlActual); Resources ResDefault; XmlResourceController XmlDefaults; XmlDefaults.SetFileName(DefaultFilePath); ResDefault.FromViewToModel(&XmlDefaults); CopyResourceController Copy; Copy.SetResources(&ResActual); Copy.SetDefaults(&ResDefault); Res->FromViewToModel(&Copy); } ShowData(); connect(Ask,SIGNAL(Default()),this,SLOT(SetDefault())); connect(Ask,SIGNAL(Save(QString)),this,SLOT(SaveActual(QString))); connect(Ask,SIGNAL(Load(QString)),this,SLOT(LoadActual(QString))); connect(Ask,SIGNAL(Reset()),this,SLOT(Restart())); connect(Ask,SIGNAL(ShowLanguage()),this,SLOT(ChooseLanguage())); connect(Ask,SIGNAL(ShowLogLocation()),this,SLOT(ChooseLogLocation())); connect(Ask,SIGNAL(ShowDatabase()),this,SLOT(ShowDatabase())); if(!_DataBaseConnector->HasDatabase()) { Ask->HideDatabaseButton(); } //Ask user for input if(!IsSilent && !ask.exec()) { QTimer::singleShot(50,this,SLOT(Close())); delete UserWidgetControllerPointer; UserWidgetControllerPointer = 0; return; } //Save defaults { Resources ResDefaults; ResDefaults.FromViewToModel(&loader); XmlResourceController XmlDefaults; XmlDefaults.SetFileName(DefaultFilePath); ResDefaults.FromModelToView(&XmlDefaults); } if(NeedToUseAdditionalSettings) { Settings->setValue("DefaultWorker",AdditionalSettings->ParseWidget()); InitBrowserList(AdditionalSettings->ParseWidget()); }else { InitBrowserList(Settings->value("DefaultWorker", "MultiProcessQt5").toString()); } //Load data to new model and then to engine resources Resources UserRes; UserRes.FromViewToModel(UserWidgetControllerPointer); UserRes.FromModelToView(XmlActual); UserRes.FromModelToView(EngineResController); //Clean memory delete UserWidgetControllerPointer; UserWidgetControllerPointer = 0; Ask = 0; } //Prepare Worker ScriptMultiWorker* worker = new ScriptMultiWorker(this); worker->SetModuleManager(_ModuleManager); worker->SetAdditionEngineScripts(_ModuleManager->GetModuleEngineCode()); worker->SetPreprocessor(_Preprocessor); worker->SetBrowserFactory(BrowserFactory); Output->Clear(); Output->disconnect(); ReportData = new ScriptMultiWorkerReportData(this); ResVisualizer = new ResourcesVisualizer(this); connect(ResVisualizer,SIGNAL(ChangedState(bool)),this,SLOT(ResourcesReportStateChanged(bool))); ResVisualizer->SetReportData(EngineResController->GetWatcherList()); DataVisualizer = new ReportDataVisualizer(this); DataVisualizer->SetReportData(ReportData); connect(ui->actionShow_Report,SIGNAL(triggered()),DataVisualizer,SLOT(ShowReport())); connect(FactorySolver,SIGNAL(UsedSolver(QString)),ReportData,SLOT(CaptchaUsed(QString))); connect(FactorySolver,SIGNAL(FailedSolver(QString)),ReportData,SLOT(CaptchaFailed(QString))); connect(ui->actionShow,SIGNAL(triggered()),this,SLOT(show())); connect(ui->actionExit,SIGNAL(triggered()),this,SLOT(Close())); connect(ui->actionRestart,SIGNAL(triggered()),this,SLOT(Restart())); connect(ui->actionRestart,SIGNAL(triggered()),this,SLOT(Close())); connect(ui->actionData,SIGNAL(triggered()),this,SLOT(ShowDatabase())); connect(TrayNotifier,SIGNAL(Show()),this,SLOT(show())); QMenu *Menu = new QMenu(this); Menu->addAction(ui->actionShow); Menu->addSeparator(); Menu->addAction(ui->actionExit); TrayNotifier->SetContextmenu(Menu); connect(worker,SIGNAL(Success()),Output,SLOT(Success())); connect(worker,SIGNAL(Failed()),Output,SLOT(Failed())); connect(worker,SIGNAL(ProgressMaximum(int)),Output,SLOT(ProgressMaximum(int))); connect(worker,SIGNAL(ProgressValue(int)),Output,SLOT(ProgressValue(int))); connect(worker,SIGNAL(Finished()),Output,SLOT(Finished())); //Set Loggers QDateTime CurrentDateTime = QDateTime::currentDateTime(); QString datestringfile = CurrentDateTime.toString("yyyy.MM.dd.hh.mm.ss"); Output->SetOutputTitle1(loader.GetOutputTitle1()); Output->SetOutputTitle2(loader.GetOutputTitle2()); Output->SetOutputTitle3(loader.GetOutputTitle3()); Output->SetOutputTitle4(loader.GetOutputTitle4()); Output->SetOutputTitle5(loader.GetOutputTitle5()); Output->SetOutputTitle6(loader.GetOutputTitle6()); Output->SetOutputTitle7(loader.GetOutputTitle7()); Output->SetOutputTitle8(loader.GetOutputTitle8()); Output->SetOutputTitle9(loader.GetOutputTitle9()); ComplexLogger *ComplexLoggerResults1 = new ComplexLogger(worker); FileLogger *FileLoggerResults1 = new FileLogger(ComplexLoggerResults1); QString FileName1 = QDir::cleanPath(LogLocation + QDir::separator() + QString("%2/%1.txt").arg(datestringfile).arg(Output->GetOutputTitle1().GetTranslation("en").replace(QRegExp("\\s"),".").replace(QRegExp("[^a-zA-Z1-9]"),""))); Output->SetFileName1(FileName1); FileLoggerResults1->SetFileName(FileName1); PlainTextLogger * PlainTextLoggerResults1 = new PlainTextLogger(ComplexLoggerResults1); PlainTextLoggerResults1->SetPlainTextElement(Output->GetOutput(0)); ComplexLoggerResults1->AddLogger(FileLoggerResults1); ComplexLoggerResults1->AddLogger(PlainTextLoggerResults1); connect(ComplexLoggerResults1, SIGNAL(NewLine()), this, SLOT(AddedOutput1())); ComplexLogger *ComplexLoggerResults2 = new ComplexLogger(worker); FileLogger *FileLoggerResults2 = new FileLogger(ComplexLoggerResults2); QString FileName2 = QDir::cleanPath(LogLocation + QDir::separator() + QString("%2/%1.txt").arg(datestringfile).arg(Output->GetOutputTitle2().GetTranslation("en").replace(QRegExp("\\s"),".").replace(QRegExp("[^a-zA-Z1-9]"),""))); Output->SetFileName2(FileName2); FileLoggerResults2->SetFileName(FileName2); PlainTextLogger * PlainTextLoggerResults2 = new PlainTextLogger(ComplexLoggerResults2); PlainTextLoggerResults2->SetPlainTextElement(Output->GetOutput(1)); ComplexLoggerResults2->AddLogger(FileLoggerResults2); ComplexLoggerResults2->AddLogger(PlainTextLoggerResults2); connect(ComplexLoggerResults2, SIGNAL(NewLine()), this, SLOT(AddedOutput2())); ComplexLogger *ComplexLoggerResults3 = new ComplexLogger(worker); FileLogger *FileLoggerResults3 = new FileLogger(ComplexLoggerResults3); QString FileName3 = QDir::cleanPath(LogLocation + QDir::separator() + QString("%2/%1.txt").arg(datestringfile).arg(Output->GetOutputTitle3().GetTranslation("en").replace(QRegExp("\\s"),".").replace(QRegExp("[^a-zA-Z1-9]"),""))); Output->SetFileName3(FileName3); FileLoggerResults3->SetFileName(FileName3); PlainTextLogger * PlainTextLoggerResults3 = new PlainTextLogger(ComplexLoggerResults3); PlainTextLoggerResults3->SetPlainTextElement(Output->GetOutput(2)); ComplexLoggerResults3->AddLogger(FileLoggerResults3); ComplexLoggerResults3->AddLogger(PlainTextLoggerResults3); connect(ComplexLoggerResults3, SIGNAL(NewLine()), this, SLOT(AddedOutput3())); ComplexLogger *ComplexLoggerResults4 = new ComplexLogger(worker); FileLogger *FileLoggerResults4 = new FileLogger(ComplexLoggerResults4); QString FileName4 = QDir::cleanPath(LogLocation + QDir::separator() + QString("%2/%1.txt").arg(datestringfile).arg(Output->GetOutputTitle4().GetTranslation("en").replace(QRegExp("\\s"),".").replace(QRegExp("[^a-zA-Z1-9]"),""))); Output->SetFileName4(FileName4); FileLoggerResults4->SetFileName(FileName4); PlainTextLogger * PlainTextLoggerResults4 = new PlainTextLogger(ComplexLoggerResults4); PlainTextLoggerResults4->SetPlainTextElement(Output->GetOutput(3)); ComplexLoggerResults4->AddLogger(FileLoggerResults4); ComplexLoggerResults4->AddLogger(PlainTextLoggerResults4); connect(ComplexLoggerResults4, SIGNAL(NewLine()), this, SLOT(AddedOutput4())); ComplexLogger *ComplexLoggerResults5 = new ComplexLogger(worker); FileLogger *FileLoggerResults5 = new FileLogger(ComplexLoggerResults5); QString FileName5 = QDir::cleanPath(LogLocation + QDir::separator() + QString("%2/%1.txt").arg(datestringfile).arg(Output->GetOutputTitle5().GetTranslation("en").replace(QRegExp("\\s"),".").replace(QRegExp("[^a-zA-Z1-9]"),""))); Output->SetFileName5(FileName5); FileLoggerResults5->SetFileName(FileName5); PlainTextLogger * PlainTextLoggerResults5 = new PlainTextLogger(ComplexLoggerResults5); PlainTextLoggerResults5->SetPlainTextElement(Output->GetOutput(4)); ComplexLoggerResults5->AddLogger(FileLoggerResults5); ComplexLoggerResults5->AddLogger(PlainTextLoggerResults5); connect(ComplexLoggerResults5, SIGNAL(NewLine()), this, SLOT(AddedOutput5())); ComplexLogger *ComplexLoggerResults6 = new ComplexLogger(worker); FileLogger *FileLoggerResults6 = new FileLogger(ComplexLoggerResults6); QString FileName6 = QDir::cleanPath(LogLocation + QDir::separator() + QString("%2/%1.txt").arg(datestringfile).arg(Output->GetOutputTitle6().GetTranslation("en").replace(QRegExp("\\s"),".").replace(QRegExp("[^a-zA-Z1-9]"),""))); Output->SetFileName6(FileName6); FileLoggerResults6->SetFileName(FileName6); PlainTextLogger * PlainTextLoggerResults6 = new PlainTextLogger(ComplexLoggerResults6); PlainTextLoggerResults6->SetPlainTextElement(Output->GetOutput(5)); ComplexLoggerResults6->AddLogger(FileLoggerResults6); ComplexLoggerResults6->AddLogger(PlainTextLoggerResults6); connect(ComplexLoggerResults6, SIGNAL(NewLine()), this, SLOT(AddedOutput6())); ComplexLogger *ComplexLoggerResults7 = new ComplexLogger(worker); FileLogger *FileLoggerResults7 = new FileLogger(ComplexLoggerResults7); QString FileName7 = QDir::cleanPath(LogLocation + QDir::separator() + QString("%2/%1.txt").arg(datestringfile).arg(Output->GetOutputTitle7().GetTranslation("en").replace(QRegExp("\\s"),".").replace(QRegExp("[^a-zA-Z1-9]"),""))); Output->SetFileName7(FileName7); FileLoggerResults7->SetFileName(FileName7); PlainTextLogger * PlainTextLoggerResults7 = new PlainTextLogger(ComplexLoggerResults7); PlainTextLoggerResults7->SetPlainTextElement(Output->GetOutput(6)); ComplexLoggerResults7->AddLogger(FileLoggerResults7); ComplexLoggerResults7->AddLogger(PlainTextLoggerResults7); connect(ComplexLoggerResults7, SIGNAL(NewLine()), this, SLOT(AddedOutput7())); ComplexLogger *ComplexLoggerResults8 = new ComplexLogger(worker); FileLogger *FileLoggerResults8 = new FileLogger(ComplexLoggerResults8); QString FileName8 = QDir::cleanPath(LogLocation + QDir::separator() + QString("%2/%1.txt").arg(datestringfile).arg(Output->GetOutputTitle8().GetTranslation("en").replace(QRegExp("\\s"),".").replace(QRegExp("[^a-zA-Z1-9]"),""))); Output->SetFileName8(FileName8); FileLoggerResults8->SetFileName(FileName8); PlainTextLogger * PlainTextLoggerResults8 = new PlainTextLogger(ComplexLoggerResults8); PlainTextLoggerResults8->SetPlainTextElement(Output->GetOutput(7)); ComplexLoggerResults8->AddLogger(FileLoggerResults8); ComplexLoggerResults8->AddLogger(PlainTextLoggerResults8); connect(ComplexLoggerResults8, SIGNAL(NewLine()), this, SLOT(AddedOutput8())); ComplexLogger *ComplexLoggerResults9 = new ComplexLogger(worker); FileLogger *FileLoggerResults9 = new FileLogger(ComplexLoggerResults9); QString FileName9 = QDir::cleanPath(LogLocation + QDir::separator() + QString("%2/%1.txt").arg(datestringfile).arg(Output->GetOutputTitle9().GetTranslation("en").replace(QRegExp("\\s"),".").replace(QRegExp("[^a-zA-Z1-9]"),""))); Output->SetFileName9(FileName9); FileLoggerResults9->SetFileName(FileName9); PlainTextLogger * PlainTextLoggerResults9 = new PlainTextLogger(ComplexLoggerResults9); PlainTextLoggerResults9->SetPlainTextElement(Output->GetOutput(8)); ComplexLoggerResults9->AddLogger(FileLoggerResults9); ComplexLoggerResults9->AddLogger(PlainTextLoggerResults9); connect(ComplexLoggerResults9, SIGNAL(NewLine()), this, SLOT(AddedOutput9())); Output->SetOutputVisible1(loader.GetOutputVisible1()); Output->SetOutputVisible2(loader.GetOutputVisible2()); Output->SetOutputVisible3(loader.GetOutputVisible3()); Output->SetOutputVisible4(loader.GetOutputVisible4()); Output->SetOutputVisible5(loader.GetOutputVisible5()); Output->SetOutputVisible6(loader.GetOutputVisible6()); Output->SetOutputVisible7(loader.GetOutputVisible7()); Output->SetOutputVisible8(loader.GetOutputVisible8()); Output->SetOutputVisible9(loader.GetOutputVisible9()); Output->SetConfiguratorVisible(false); worker->SetResults1(ComplexLoggerResults1); worker->SetResults2(ComplexLoggerResults2); worker->SetResults3(ComplexLoggerResults3); worker->SetResults4(ComplexLoggerResults4); worker->SetResults5(ComplexLoggerResults5); worker->SetResults6(ComplexLoggerResults6); worker->SetResults7(ComplexLoggerResults7); worker->SetResults8(ComplexLoggerResults8); worker->SetResults9(ComplexLoggerResults9); ui->Results->clear(); ComplexLogger *ComplexLoggerLog = new ComplexLogger(worker); FileLogger *FileLoggerLog = new FileLogger(ComplexLoggerLog); LogFileName = QDir::cleanPath(LogLocation + QDir::separator() + QString("log/%1.txt").arg(datestringfile)); FileLoggerLog->SetFileName(LogFileName); PlainTextLogger * PlainTextLoggerLog = new PlainTextLogger(ComplexLoggerLog); PlainTextLoggerLog->SetPlainTextElement(ui->Results); ComplexLoggerLog->AddLogger(FileLoggerLog); ComplexLoggerLog->AddLogger(PlainTextLoggerLog); worker->SetLogger(ComplexLoggerLog); worker->SetScript(_Preprocessor->Preprocess(loader.GetScript(),0)); worker->SetScriptResources(ScriptResources); TimeoutWaiterFactory *WaiterFactory = new TimeoutWaiterFactory(worker); WaiterFactory->SetMultiWorker(_MultiTimer); worker->SetWaiterFactory(WaiterFactory); worker->SetSolverFactory(FactorySolver); worker->SetEngineResources(EngineRes); worker->SetResourceHandlersFactory(new ResourceHandlersFactory(worker)); worker->SetHttpClientFactory(_HttpClientFactory); worker->SetPop3ClientFactory(_Pop3ClientFactory); worker->SetImapClientFactory(_ImapClientFactory); worker->SetCsvHelper(_CsvHelper); worker->SetDatabaseConnector(_DataBaseConnector3); worker->SetScriptSuspender(new ScriptSuspender(worker)); worker->SetWorkerFactory(new ScriptWorkerFactory(worker)); connect(worker,SIGNAL(Finished()),this,SLOT(Finished())); worker->SetReportData(ReportData); Worker = worker; Worker->SetDoTrace(false); //Modules Worker->SetHtmlParserFactory(_HtmlParserFactory); Worker->SetHelperFactory(_HelperFactory); Worker->AddModule(new MemoryInfo(worker),"MemoryInfo",true,true); /*PeriodicalHttpRequest * SmsRegPeriodicalHttpRequest = new PeriodicalHttpRequest(this); SmsRegPeriodicalHttpRequest->SetHttpClientFactory(_HttpClientFactory); worker->AddModule(SmsRegPeriodicalHttpRequest,"SmsRegPeriodicalHttpRequest",false,true);*/ connect(ui->actionStop,SIGNAL(triggered()),worker,SLOT(Abort())); connect(ui->actionResources_Report,SIGNAL(triggered()),this,SLOT(ResourcesReport())); TrayNotifier->Start(); ui->actionResources_Report->setEnabled(true); ui->actionResources_Report->setIcon(QIcon(":/fastexecutescript/images/resources_ok.png")); ResVisualizer->SetEnabled(); //Run Worker worker->SetProperties(new Properties(worker)); #ifdef ONLY_REMOTE CheckLicense * Checker = new CheckLicense(worker); Checker->Preprocessor = _Preprocessor; Checker->Data = ContentLoader.GetData(); Checker->MultiWorker = worker; Checker->MachineIdObtainer = MachineIdObtainer; Checker->Salt = ContentLoader.GetSalt(); Checker->Start(); #endif _ModuleManager->StartAllDlls(); QTimer::singleShot(50,worker,SLOT(Run())); //worker->Run(); if(!IsSilent) this->show(); }
void Agent::think() { // Stime time data // This is a sensation to be given to the agent. It begins a // thinking cycle. The first time is the simulation time the // sensation was generated (also known as the send time) and the // second is the time that the sensation is delivered to the agent // (also known as the arrive time). If the parameter send agent send // time is off, -1 is always sent as the send time, and if the // parameter send agent arrive time is off, -1 is always sent as the // arrive time. The data is an arbitrary data string generated by // the world model. The agent can reply with act messages, and must // finish with a done thinking message. LOGBEGIN; LOG( 1, "received sensation %i" , _sensationCount ); //if ( WM->getGameTime() > 150 ) exit(0); WM->update(); _panTilted = false; switch ( _sensationCount ) { case 0: createAgent(); break; case 1: initAgent(); break; default:; playMatch(); } ++_sensationCount; //if ( _sensationCount > 1000 ) exit(1);//profile the program //--------------for DEBUG----------------- //-- init FileLogger and open file if ( _sensationCount == 10 ) { init(); WM->setSameTypeTeammateNum(); //-* can only update after set the num #ifdef ENABLE_LOG msgLog.openFile("msgLog"); //-* logging all msg for communcation with the server localizationLog.openFile("myPos");//-* for debuging localization ballPosLog.openFile("ballPos"); //-* for debuging localize ball's position #endif } //-------------end DEBUG---------------------- /* ** From 'NEWS' in SPADES 1.10 ** * * Agents can now, in the middle of a thinking cycle, send a "request current think time" message. The commserver responds with the * current think time for this thinking cycle. This message is processed by the commserver (no network message to the engine) and * the commserver responds as quickly as it can. The format: * Agent->CS: "C" is a request current think time message * CS->Agent: "C<time>" is the response, where <time> is the current thinking time * CS->Agent: "req_curr_think_time_when_not_thinking" is a new error code if the agent sends this message when it's not thinking */ //-* "C" message //-- send a "C" to commserver //-- commserver reply current think time //-- the reply formation is "C<time>" // Time timeBeforeThink = WM->getRealTime(); COMM->PutOutput( requestThinkTimeMessage() ); LOG( 2, "---------after send C-------"); if ( COMM->GetInput() ) { LOG( 2, COMM->GetMsg() ); #ifdef ENABLE_LOG msgLog.log( COMM->GetMsg() ); msgLog.log( "\n"); #endif PA->parseAll(COMM->GetMsg()); LOG( 2, "C time: %f",WM->getCurrentThinkTime() ); } sendActionNotifys(); }
#include "catch.hpp" TEST_CASE( "Testing Logging Facilities", "[Logger]" ) { time_t t = time(0); struct tm * now = localtime( & t ); std::stringstream filename; filename << "/tmp/renzoku_log_test" << '-' << (now->tm_year + 1900) << '-' << (now->tm_mon + 1) << '-' << now->tm_mday << /*'-' << now->tm_hour << '-' << now->tm_min << '-' << now->tm_sec << */".log"; FileLogger log(filename.str()); iLogger* logptr = &log; //iLogger* logptr = new StdoutLogger(); SECTION( "make sure that we can create a logger" ) { REQUIRE(log.is_good()); } SECTION( "attempt to log a few messages" ) { CHECK( true ); LOG(logptr, DEBUG, "testing %s", "DEBUG"); LOG(logptr, INFO, "testing %s", "INFO"); LOG(logptr, WARNING, "testing %s", "WARNING"); LOG(logptr, ERROR, "testing %s", "ERROR"); LOG(logptr, CRITICAL, "testing %s", "CRITICAL");