1 /* 2 * Copyright (C) 2010 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 // Logging 18 19 // In order of decreasing priority, the log priority levels are: 20 // Assert 21 // E(rror) 22 // W(arn) 23 // I(nfo) 24 // D(ebug) 25 // V(erbose) 26 // Debug and verbose are usually compiled out except during development. 27 28 /** These values match the definitions in system/core/include/cutils/log.h */ 29 #define SLAndroidLogLevel_Unknown 0 30 #define SLAndroidLogLevel_Default 1 31 #define SLAndroidLogLevel_Verbose 2 32 #define SLAndroidLogLevel_Debug 3 33 #define SLAndroidLogLevel_Info 4 34 #define SLAndroidLogLevel_Warn 5 35 #define SLAndroidLogLevel_Error 6 36 #define SLAndroidLogLevel_Fatal 7 37 #define SLAndroidLogLevel_Silent 8 38 39 // USE_LOG is the minimum log priority level that is enabled at build time. 40 // It is configured in Android.mk but can be overridden per source file. 41 #ifndef USE_LOG 42 #define USE_LOG SLAndroidLogLevel_Info 43 #endif 44 45 46 #ifdef ANDROID 47 48 // The usual Android LOGx macros are not available, so we use the lower-level APIs. 49 extern const char slLogTag[]; 50 51 #if (USE_LOG <= SLAndroidLogLevel_Error) 52 #define SL_LOGE(...) __android_log_print(SLAndroidLogLevel_Error, slLogTag, __VA_ARGS__) 53 #else 54 #define SL_LOGE(...) do { } while (0) 55 #endif 56 57 #if (USE_LOG <= SLAndroidLogLevel_Warn) 58 #define SL_LOGW(...) __android_log_print(SLAndroidLogLevel_Warn, slLogTag, __VA_ARGS__) 59 #else 60 #define SL_LOGW(...) do { } while (0) 61 #endif 62 63 #if (USE_LOG <= SLAndroidLogLevel_Info) 64 #define SL_LOGI(...) __android_log_print(SLAndroidLogLevel_Info, slLogTag, __VA_ARGS__) 65 #else 66 #define SL_LOGI(...) do { } while (0) 67 #endif 68 69 #if (USE_LOG <= SLAndroidLogLevel_Debug) 70 #define SL_LOGD(...) __android_log_print(SLAndroidLogLevel_Debug, slLogTag, __VA_ARGS__) 71 #else 72 #define SL_LOGD(...) do { } while (0) 73 #endif 74 75 #if (USE_LOG <= SLAndroidLogLevel_Verbose) 76 #define SL_LOGV(...) __android_log_print(SLAndroidLogLevel_Verbose, slLogTag, __VA_ARGS__) 77 #else 78 #define SL_LOGV(...) do { } while (0) 79 #endif 80 81 #else // !defined(ANDROID) 82 83 #if (USE_LOG <= SLAndroidLogLevel_Error) 84 #define SL_LOGE(...) do { fprintf(stderr, "SL_LOGE: %s:%s:%d ", __FILE__, __FUNCTION__, __LINE__); \ 85 fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); } while(0) 86 #else 87 #define SL_LOGE(...) do { } while (0) 88 #endif 89 90 #if (USE_LOG <= SLAndroidLogLevel_Warn) 91 #define SL_LOGW(...) do { fprintf(stderr, "SL_LOGW: %s:%s:%d ", __FILE__, __FUNCTION__, __LINE__); \ 92 fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); } while(0) 93 #else 94 #define SL_LOGW(...) do { } while (0) 95 #endif 96 97 #if (USE_LOG <= SLAndroidLogLevel_Info) 98 #define SL_LOGI(...) do { fprintf(stderr, "SL_LOGI: %s:%s:%d ", __FILE__, __FUNCTION__, __LINE__); \ 99 fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); } while(0) 100 #else 101 #define SL_LOGI(...) do { } while (0) 102 #endif 103 104 #if (USE_LOG <= SLAndroidLogLevel_Debug) 105 #define SL_LOGD(...) do { fprintf(stderr, "SL_LOGD: %s:%s:%d ", __FILE__, __FUNCTION__, __LINE__); \ 106 fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); } while(0) 107 #else 108 #define SL_LOGD(...) do { } while (0) 109 #endif 110 111 #if (USE_LOG <= SLAndroidLogLevel_Verbose) 112 #define SL_LOGV(...) do { fprintf(stderr, "SL_LOGV: %s:%s:%d ", __FILE__, __FUNCTION__, __LINE__); \ 113 fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); } while(0) 114 #else 115 #define SL_LOGV(...) do { } while (0) 116 #endif 117 118 #endif // ANDROID 119