xref: /aosp_15_r20/external/executorch/backends/qualcomm/runtime/Logging.cpp (revision 523fa7a60841cd1ecfb9cc4201f1ca8b03ed023a)
1*523fa7a6SAndroid Build Coastguard Worker /*
2*523fa7a6SAndroid Build Coastguard Worker  * Copyright (c) Qualcomm Innovation Center, Inc.
3*523fa7a6SAndroid Build Coastguard Worker  * All rights reserved.
4*523fa7a6SAndroid Build Coastguard Worker  *
5*523fa7a6SAndroid Build Coastguard Worker  * This source code is licensed under the BSD-style license found in the
6*523fa7a6SAndroid Build Coastguard Worker  * LICENSE file in the root directory of this source tree.
7*523fa7a6SAndroid Build Coastguard Worker  */
8*523fa7a6SAndroid Build Coastguard Worker #include <executorch/backends/qualcomm/runtime/Logging.h>
9*523fa7a6SAndroid Build Coastguard Worker #include <cstdarg>
10*523fa7a6SAndroid Build Coastguard Worker #include <cstdio>
11*523fa7a6SAndroid Build Coastguard Worker #ifdef __ANDROID__
12*523fa7a6SAndroid Build Coastguard Worker #include <android/log.h>
13*523fa7a6SAndroid Build Coastguard Worker #endif
14*523fa7a6SAndroid Build Coastguard Worker namespace executorch {
15*523fa7a6SAndroid Build Coastguard Worker namespace backends {
16*523fa7a6SAndroid Build Coastguard Worker namespace qnn {
Log(QnnExecuTorchLogLevel log_level,const char * format,...)17*523fa7a6SAndroid Build Coastguard Worker void Log(QnnExecuTorchLogLevel log_level, const char* format, ...) {
18*523fa7a6SAndroid Build Coastguard Worker   va_list args;
19*523fa7a6SAndroid Build Coastguard Worker   va_start(args, format);
20*523fa7a6SAndroid Build Coastguard Worker   const char* serverity_name;
21*523fa7a6SAndroid Build Coastguard Worker   switch (log_level) {
22*523fa7a6SAndroid Build Coastguard Worker     case QnnExecuTorchLogLevel::kLogLevelVerbose:
23*523fa7a6SAndroid Build Coastguard Worker       serverity_name = "VERBOSE";
24*523fa7a6SAndroid Build Coastguard Worker       break;
25*523fa7a6SAndroid Build Coastguard Worker     case QnnExecuTorchLogLevel::kLogLevelInfo:
26*523fa7a6SAndroid Build Coastguard Worker       serverity_name = "INFO";
27*523fa7a6SAndroid Build Coastguard Worker       break;
28*523fa7a6SAndroid Build Coastguard Worker     case QnnExecuTorchLogLevel::kLogLevelWarn:
29*523fa7a6SAndroid Build Coastguard Worker       serverity_name = "WARNING";
30*523fa7a6SAndroid Build Coastguard Worker       break;
31*523fa7a6SAndroid Build Coastguard Worker     case QnnExecuTorchLogLevel::kLogLevelError:
32*523fa7a6SAndroid Build Coastguard Worker       serverity_name = "ERROR";
33*523fa7a6SAndroid Build Coastguard Worker       break;
34*523fa7a6SAndroid Build Coastguard Worker     case QnnExecuTorchLogLevel::kLogLevelDebug:
35*523fa7a6SAndroid Build Coastguard Worker       serverity_name = "DEBUG";
36*523fa7a6SAndroid Build Coastguard Worker       break;
37*523fa7a6SAndroid Build Coastguard Worker     default:
38*523fa7a6SAndroid Build Coastguard Worker       serverity_name = "Unknown severity";
39*523fa7a6SAndroid Build Coastguard Worker       break;
40*523fa7a6SAndroid Build Coastguard Worker   }
41*523fa7a6SAndroid Build Coastguard Worker #ifdef __ANDROID__
42*523fa7a6SAndroid Build Coastguard Worker   int android_severity = ANDROID_LOG_DEBUG;
43*523fa7a6SAndroid Build Coastguard Worker   switch (log_level) {
44*523fa7a6SAndroid Build Coastguard Worker     case QnnExecuTorchLogLevel::kLogLevelInfo:
45*523fa7a6SAndroid Build Coastguard Worker       android_severity = ANDROID_LOG_INFO;
46*523fa7a6SAndroid Build Coastguard Worker       break;
47*523fa7a6SAndroid Build Coastguard Worker     case QnnExecuTorchLogLevel::kLogLevelWarn:
48*523fa7a6SAndroid Build Coastguard Worker       android_severity = ANDROID_LOG_WARN;
49*523fa7a6SAndroid Build Coastguard Worker       break;
50*523fa7a6SAndroid Build Coastguard Worker     case QnnExecuTorchLogLevel::kLogLevelError:
51*523fa7a6SAndroid Build Coastguard Worker       android_severity = ANDROID_LOG_ERROR;
52*523fa7a6SAndroid Build Coastguard Worker       break;
53*523fa7a6SAndroid Build Coastguard Worker     case QnnExecuTorchLogLevel::kLogLevelVerbose:
54*523fa7a6SAndroid Build Coastguard Worker     case QnnExecuTorchLogLevel::kLogLevelDebug:
55*523fa7a6SAndroid Build Coastguard Worker     default:
56*523fa7a6SAndroid Build Coastguard Worker       android_severity = ANDROID_LOG_DEBUG;
57*523fa7a6SAndroid Build Coastguard Worker       break;
58*523fa7a6SAndroid Build Coastguard Worker   }
59*523fa7a6SAndroid Build Coastguard Worker   __android_log_vprint(android_severity, "[Qnn ExecuTorch]", format, args);
60*523fa7a6SAndroid Build Coastguard Worker #endif
61*523fa7a6SAndroid Build Coastguard Worker   fprintf(stderr, "[%s] [Qnn ExecuTorch]: ", serverity_name);
62*523fa7a6SAndroid Build Coastguard Worker   vfprintf(stderr, format, args);
63*523fa7a6SAndroid Build Coastguard Worker   va_end(args);
64*523fa7a6SAndroid Build Coastguard Worker   fputc('\n', stderr);
65*523fa7a6SAndroid Build Coastguard Worker }
66*523fa7a6SAndroid Build Coastguard Worker } // namespace qnn
67*523fa7a6SAndroid Build Coastguard Worker } // namespace backends
68*523fa7a6SAndroid Build Coastguard Worker } // namespace executorch
69