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 // can't disable SL_LOGF 52 #define SL_LOGF(...) __android_log_print(SLAndroidLogLevel_Fatal, slLogTag, __VA_ARGS__) 53 54 #if (USE_LOG <= SLAndroidLogLevel_Error) 55 #define SL_LOGE(...) __android_log_print(SLAndroidLogLevel_Error, slLogTag, __VA_ARGS__) 56 #else 57 #define SL_LOGE(...) do { } while (0) 58 #endif 59 60 #if (USE_LOG <= SLAndroidLogLevel_Warn) 61 #define SL_LOGW(...) __android_log_print(SLAndroidLogLevel_Warn, slLogTag, __VA_ARGS__) 62 #else 63 #define SL_LOGW(...) do { } while (0) 64 #endif 65 66 #if (USE_LOG <= SLAndroidLogLevel_Info) 67 #define SL_LOGI(...) __android_log_print(SLAndroidLogLevel_Info, slLogTag, __VA_ARGS__) 68 #else 69 #define SL_LOGI(...) do { } while (0) 70 #endif 71 72 #if (USE_LOG <= SLAndroidLogLevel_Debug) 73 #define SL_LOGD(...) __android_log_print(SLAndroidLogLevel_Debug, slLogTag, __VA_ARGS__) 74 #else 75 #define SL_LOGD(...) do { } while (0) 76 #endif 77 78 #if (USE_LOG <= SLAndroidLogLevel_Verbose) 79 #define SL_LOGV(...) __android_log_print(SLAndroidLogLevel_Verbose, slLogTag, __VA_ARGS__) 80 #else 81 #define SL_LOGV(...) do { } while (0) 82 #endif 83 84 #else // !defined(ANDROID) 85 86 #if (USE_LOG <= SLAndroidLogLevel_Error) 87 #define SL_LOGE(...) do { fprintf(stderr, "SL_LOGE: %s:%s:%d ", __FILE__, __FUNCTION__, __LINE__); \ 88 fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); } while(0) 89 #else 90 #define SL_LOGE(...) do { } while (0) 91 #endif 92 93 #if (USE_LOG <= SLAndroidLogLevel_Warn) 94 #define SL_LOGW(...) do { fprintf(stderr, "SL_LOGW: %s:%s:%d ", __FILE__, __FUNCTION__, __LINE__); \ 95 fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); } while(0) 96 #else 97 #define SL_LOGW(...) do { } while (0) 98 #endif 99 100 #if (USE_LOG <= SLAndroidLogLevel_Info) 101 #define SL_LOGI(...) do { fprintf(stderr, "SL_LOGI: %s:%s:%d ", __FILE__, __FUNCTION__, __LINE__); \ 102 fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); } while(0) 103 #else 104 #define SL_LOGI(...) do { } while (0) 105 #endif 106 107 #if (USE_LOG <= SLAndroidLogLevel_Debug) 108 #define SL_LOGD(...) do { fprintf(stderr, "SL_LOGD: %s:%s:%d ", __FILE__, __FUNCTION__, __LINE__); \ 109 fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); } while(0) 110 #else 111 #define SL_LOGD(...) do { } while (0) 112 #endif 113 114 #if (USE_LOG <= SLAndroidLogLevel_Verbose) 115 #define SL_LOGV(...) do { fprintf(stderr, "SL_LOGV: %s:%s:%d ", __FILE__, __FUNCTION__, __LINE__); \ 116 fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); } while(0) 117 #else 118 #define SL_LOGV(...) do { } while (0) 119 #endif 120 121 #endif // ANDROID 122