AppSettingsGUIPageState* LogSettingsPageWidget::getState(QString& err) const { Q_UNUSED(err); LogSettingsPageState* state = new LogSettingsPageState(); LogSettings& settings = state->settings; //process global settings for (int i = 0; i < LogLevel_NumLevels; i++) { QWidget* w = tableWidget->cellWidget(0, i+1); LogSettingsTopLineWidget* tw = qobject_cast<LogSettingsTopLineWidget*>(w); settings.levelColors[i] = tw->color; settings.activeLevelGlobalFlag[i] = tw->cb->checkState() != Qt::Unchecked; } //process per-category settings for (int row=1 ; row < tableWidget->rowCount(); row++) { LoggerSettings logCat; logCat.categoryName = tableWidget->item(row, 0)->text(); for (int i = 0; i < LogLevel_NumLevels; i++) { logCat.activeLevelFlag[i]= tableWidget->item(row, i+1)->checkState() == Qt::Checked; } settings.addCategory(logCat); } if(fileOutCB->isChecked() != settings.toFile || settings.outputFile != saveController->getSaveFileName()){ LogCacheExt *lce = qobject_cast<LogCacheExt *>(LogCache::getAppGlobalInstance()); if(fileOutCB->isChecked()){ lce->setFileOutputEnabled(saveController->getSaveFileName()); }else{ lce->setFileOutputDisabled(); } } if (fileOutCB->isChecked()){ QString logFile(saveController->getSaveFileName()); QFileInfo lf(logFile); QFile file(logFile); bool writeble = file.open(QIODevice::WriteOnly); file.close(); if (!writeble || lf.fileName().isEmpty()){ QMessageBox::warning(NULL, tr("Warning"), tr("Unable to open log file for writing, log writing to file disabled"), QMessageBox::Ok); fileOutCB->setChecked(false); } } settings.showCategory = showCategoryCB->isChecked(); settings.showDate = showDateCB->isChecked(); settings.showLevel = showLevelCB->isChecked(); settings.enableColor = colorCB->isChecked(); settings.logPattern = dateFormatEdit->text(); settings.toFile = fileOutCB->isChecked(); settings.outputFile = saveController->getSaveFileName(); return state; }
static void initLogsCache(LogCacheExt& logsCache, const QStringList& ) { #ifdef _DEBUG logsCache.setConsoleOutputEnabled(true); #else QString consoleOutVal = qgetenv("UGENE_PRINT_TO_CONSOLE"); logsCache.setConsoleOutputEnabled(consoleOutVal == "true" || consoleOutVal == "1"); #endif QString file = qgetenv(U2_PRINT_TO_FILE); if (!file.isEmpty()) { logsCache.setFileOutputEnabled(file); return; } LogSettings ls; ls.reinitAll(); if(ls.toFile){ logsCache.setFileOutputEnabled(ls.outputFile); } }