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