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