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