Skip to content
38 changes: 36 additions & 2 deletions onnxruntime/core/providers/qnn/builder/qnn_backend_manager.cc
Original file line number Diff line number Diff line change
Expand Up @@ -407,7 +407,6 @@ void QnnLogging(const char* format,
QnnLog_Level_t level,
uint64_t timestamp,
va_list argument_parameter) {
ORT_UNUSED_PARAMETER(level);
ORT_UNUSED_PARAMETER(timestamp);

if (!::onnxruntime::logging::LoggingManager::HasDefaultLogger()) {
Expand All @@ -417,7 +416,26 @@ void QnnLogging(const char* format,
}

const auto& logger = ::onnxruntime::logging::LoggingManager::DefaultLogger();
const auto severity = ::onnxruntime::logging::Severity::kVERBOSE;

Comment thread
yuslepukhin marked this conversation as resolved.
Outdated
// Map QNN log level to ORT severity
Comment thread
yuslepukhin marked this conversation as resolved.
logging::Severity severity;
Comment thread
yuslepukhin marked this conversation as resolved.
Outdated
switch (level) {
case QNN_LOG_LEVEL_VERBOSE:
case QNN_LOG_LEVEL_DEBUG:
severity = logging::Severity::kVERBOSE;
break;
case QNN_LOG_LEVEL_INFO:
severity = logging::Severity::kINFO;
break;
case QNN_LOG_LEVEL_WARN:
severity = logging::Severity::kWARNING;
break;
case QNN_LOG_LEVEL_ERROR:
default:
severity = logging::Severity::kERROR;
break;
}

Comment thread
yuslepukhin marked this conversation as resolved.
Outdated
const auto data_type = ::onnxruntime::logging::DataType::SYSTEM;
Comment thread
yuslepukhin marked this conversation as resolved.
Outdated

if (logger.OutputIsEnabled(severity, data_type)) {
Expand Down Expand Up @@ -491,6 +509,22 @@ QnnLog_Level_t QnnBackendManager::MapOrtSeverityToQNNLogLevel(logging::Severity
}
}

logging::Severity QnnBackendManager::MapQNNLogLevelToOrtSeverity(QnnLog_Level_t qnn_log_level) {
// Map QNN log level to ORT log severity
switch (qnn_log_level) {
case QNN_LOG_LEVEL_VERBOSE:
case QNN_LOG_LEVEL_DEBUG:
return logging::Severity::kVERBOSE;
case QNN_LOG_LEVEL_INFO:
return logging::Severity::kINFO;
case QNN_LOG_LEVEL_WARN:
return logging::Severity::kWARNING;
case QNN_LOG_LEVEL_ERROR:
default:
return logging::Severity::kERROR;
}
}

Status QnnBackendManager::ResetQnnLogLevel(std::optional<logging::Severity> ort_log_level) {
std::lock_guard<std::recursive_mutex> lock(logger_recursive_mutex_);
if (!backend_setup_completed_ || logger_ == nullptr) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -288,6 +288,7 @@ class QnnBackendManager : public std::enable_shared_from_this<QnnBackendManager>
const char* QnnProfileErrorToString(QnnProfile_Error_t error);
std::string QnnErrorHandleToString(Qnn_ErrorHandle_t error);
QnnLog_Level_t MapOrtSeverityToQNNLogLevel(logging::Severity ort_log_level);
logging::Severity MapQNNLogLevelToOrtSeverity(QnnLog_Level_t qnn_log_level);
Comment thread
yuslepukhin marked this conversation as resolved.
Outdated
#ifdef _WIN32
void LogQnnProfileEventAsTraceLogging(
uint64_t timestamp,
Expand Down