diff --git a/Framework/include/QualityControl/QcInfoLogger.h b/Framework/include/QualityControl/QcInfoLogger.h index 50cb6ceae8..bfb1216a19 100644 --- a/Framework/include/QualityControl/QcInfoLogger.h +++ b/Framework/include/QualityControl/QcInfoLogger.h @@ -53,13 +53,19 @@ class QcInfoLogger : public AliceO2::InfoLogger::InfoLogger void setFacility(const std::string& facility); void setDetector(const std::string& detector); + void setRun(int run); + void setPartition(std::string& partitionName); void init(const std::string& facility, bool discardDebug = false, int discardFromLevel = 21 /* Discard Trace */, - AliceO2::InfoLogger::InfoLoggerContext* dplContext = nullptr); + AliceO2::InfoLogger::InfoLoggerContext* dplContext = nullptr, + int run = -1, + std::string partitionName = ""); void init(const std::string& facility, const boost::property_tree::ptree& config, - AliceO2::InfoLogger::InfoLoggerContext* dplContext = nullptr); + AliceO2::InfoLogger::InfoLoggerContext* dplContext = nullptr, + int run = -1, + std::string partitionName = ""); private: QcInfoLogger(); diff --git a/Framework/include/QualityControl/runnerUtils.h b/Framework/include/QualityControl/runnerUtils.h index 0c074c5cc6..b02d27ce56 100644 --- a/Framework/include/QualityControl/runnerUtils.h +++ b/Framework/include/QualityControl/runnerUtils.h @@ -82,6 +82,16 @@ inline int computeRunNumber(const framework::ServiceRegistry& services, int fall return run; } +inline std::string computePartitionName(const framework::ServiceRegistry& services, const std::string& fallbackPartitionName = "") +{ + std::string partitionName; + partitionName = services.get().device()->fConfig->GetProperty("environment_id", "unspecified"); + ILOG(Info, Devel) << "Got this property partitionName from RawDeviceService: '" << partitionName << "'" << ENDM; + partitionName = partitionName != "unspecified" /* found it in service */ ? partitionName : fallbackPartitionName; + ILOG(Debug, Devel) << "Period Name returned by computePeriodName : " << partitionName << ENDM; + return partitionName; +} + inline std::string computePeriodName(const framework::ServiceRegistry& services, const std::string& fallbackPeriodName = "") { // Determine period std::string periodName; diff --git a/Framework/src/AggregatorRunner.cxx b/Framework/src/AggregatorRunner.cxx index eeec5a7ca9..9ef7546983 100644 --- a/Framework/src/AggregatorRunner.cxx +++ b/Framework/src/AggregatorRunner.cxx @@ -322,6 +322,9 @@ void AggregatorRunner::start(const ServiceRegistry& services) mActivity.mPeriodName = computePeriodName(services, mRunnerConfig.fallbackPeriodName); mActivity.mPassName = computePassName(mRunnerConfig.fallbackPassName); mActivity.mProvenance = computeProvenance(mRunnerConfig.fallbackProvenance); + string partitionName = computePartitionName(services); + ILOG_INST.setRun(mActivity.mId); + ILOG_INST.setPartition(partitionName); ILOG(Info, Ops) << "Starting run " << mActivity.mId << ":" << "\n - period: " << mActivity.mPeriodName << "\n - pass type: " << mActivity.mPassName << "\n - provenance: " << mActivity.mProvenance << ENDM; } diff --git a/Framework/src/CheckRunner.cxx b/Framework/src/CheckRunner.cxx index c9368364e8..eb79b9d086 100644 --- a/Framework/src/CheckRunner.cxx +++ b/Framework/src/CheckRunner.cxx @@ -423,6 +423,9 @@ void CheckRunner::start(const ServiceRegistry& services) mActivity.mPeriodName = computePeriodName(services, mConfig.fallbackPeriodName); mActivity.mPassName = computePassName(mConfig.fallbackPassName); mActivity.mProvenance = computeProvenance(mConfig.fallbackProvenance); + string partitionName = computePartitionName(services); + ILOG_INST.setRun(mActivity.mId); + ILOG_INST.setPartition(partitionName); ILOG(Info, Ops) << "Starting run " << mActivity.mId << ":" << "\n - period: " << mActivity.mPeriodName << "\n - pass type: " << mActivity.mPassName << "\n - provenance: " << mActivity.mProvenance << ENDM; mTimerTotalDurationActivity.reset(); diff --git a/Framework/src/QcInfoLogger.cxx b/Framework/src/QcInfoLogger.cxx index d4fdef7736..7c993ef162 100644 --- a/Framework/src/QcInfoLogger.cxx +++ b/Framework/src/QcInfoLogger.cxx @@ -50,11 +50,37 @@ void QcInfoLogger::setDetector(const std::string& detector) ILOG(Debug, Support) << "Detector set to " << detector << ENDM; } +void QcInfoLogger::setRun(int run) +{ + if (run > 0) { + mContext->setField(infoContext::FieldName::Run, std::to_string(run)); + if (mDplContext) { + mDplContext->setField(infoContext::FieldName::Run, std::to_string(run)); + } + } + this->setContext(*mContext); + ILOG(Debug, Support) << "IL: Run set to " << run << ENDM; +} + +void QcInfoLogger::setPartition(std::string& partitionName) +{ + mContext->setField(infoContext::FieldName::Partition, partitionName); + if (mDplContext) { + mDplContext->setField(infoContext::FieldName::Partition, partitionName); + } + this->setContext(*mContext); + ILOG(Debug, Support) << "IL: Partition set to " << partitionName << ENDM; +} + void QcInfoLogger::init(const std::string& facility, bool discardDebug, int discardFromLevel, - AliceO2::InfoLogger::InfoLoggerContext* dplContext) + AliceO2::InfoLogger::InfoLoggerContext* dplContext, + int run, + std::string partitionName) { mDplContext = dplContext; setFacility(facility); + setRun(run); + setPartition(partitionName); // Set the proper discard filters ILOG_INST.filterDiscardDebug(discardDebug); @@ -66,12 +92,14 @@ void QcInfoLogger::init(const std::string& facility, bool discardDebug, int disc } void QcInfoLogger::init(const std::string& facility, const boost::property_tree::ptree& config, - AliceO2::InfoLogger::InfoLoggerContext* dplContext) + AliceO2::InfoLogger::InfoLoggerContext* dplContext, + int run, + std::string partitionName) { std::string discardDebugStr = config.get("qc.config.infologger.filterDiscardDebug", "false"); bool discardDebug = discardDebugStr == "true" ? 1 : 0; int discardLevel = config.get("qc.config.infologger.filterDiscardLevel", 21 /* Discard Trace */); - init(facility, discardDebug, discardLevel, dplContext); + init(facility, discardDebug, discardLevel, dplContext, run, partitionName); } } // namespace o2::quality_control::core diff --git a/Framework/src/TaskRunner.cxx b/Framework/src/TaskRunner.cxx index 85e9352089..80bf6d36b7 100644 --- a/Framework/src/TaskRunner.cxx +++ b/Framework/src/TaskRunner.cxx @@ -208,6 +208,9 @@ void TaskRunner::endOfStream(framework::EndOfStreamContext& eosContext) void TaskRunner::start(const ServiceRegistry& services) { mRunNumber = o2::quality_control::core::computeRunNumber(services, mTaskConfig.fallbackRunNumber); + ILOG_INST.setRun(mRunNumber); + string partitionName = computePartitionName(services); + ILOG_INST.setPartition(partitionName); try { startOfActivity();