| /* |
| * Copyright (C) 2010 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| // Logging |
| |
| // In order of decreasing priority, the log priority levels are: |
| // Assert |
| // E(rror) |
| // W(arn) |
| // I(nfo) |
| // D(ebug) |
| // V(erbose) |
| // Debug and verbose are usually compiled out except during development. |
| |
| /** These values match the definitions in system/core/include/cutils/log.h */ |
| #define SLAndroidLogLevel_Unknown 0 |
| #define SLAndroidLogLevel_Default 1 |
| #define SLAndroidLogLevel_Verbose 2 |
| #define SLAndroidLogLevel_Debug 3 |
| #define SLAndroidLogLevel_Info 4 |
| #define SLAndroidLogLevel_Warn 5 |
| #define SLAndroidLogLevel_Error 6 |
| #define SLAndroidLogLevel_Fatal 7 |
| #define SLAndroidLogLevel_Silent 8 |
| |
| // USE_LOG is the minimum log priority level that is enabled at build time. |
| // It is configured in Android.mk but can be overridden per source file. |
| #ifndef USE_LOG |
| #define USE_LOG SLAndroidLogLevel_Info |
| #endif |
| |
| |
| #ifdef ANDROID |
| |
| // The usual Android LOGx macros are not available, so we use the lower-level APIs. |
| extern const char slLogTag[]; |
| |
| // can't disable SL_LOGF |
| #define SL_LOGF(...) __android_log_print(SLAndroidLogLevel_Fatal, slLogTag, __VA_ARGS__) |
| |
| #if (USE_LOG <= SLAndroidLogLevel_Error) |
| #define SL_LOGE(...) __android_log_print(SLAndroidLogLevel_Error, slLogTag, __VA_ARGS__) |
| #else |
| #define SL_LOGE(...) do { } while (0) |
| #endif |
| |
| #if (USE_LOG <= SLAndroidLogLevel_Warn) |
| #define SL_LOGW(...) __android_log_print(SLAndroidLogLevel_Warn, slLogTag, __VA_ARGS__) |
| #else |
| #define SL_LOGW(...) do { } while (0) |
| #endif |
| |
| #if (USE_LOG <= SLAndroidLogLevel_Info) |
| #define SL_LOGI(...) __android_log_print(SLAndroidLogLevel_Info, slLogTag, __VA_ARGS__) |
| #else |
| #define SL_LOGI(...) do { } while (0) |
| #endif |
| |
| #if (USE_LOG <= SLAndroidLogLevel_Debug) |
| #define SL_LOGD(...) __android_log_print(SLAndroidLogLevel_Debug, slLogTag, __VA_ARGS__) |
| #else |
| #define SL_LOGD(...) do { } while (0) |
| #endif |
| |
| #if (USE_LOG <= SLAndroidLogLevel_Verbose) |
| #define SL_LOGV(...) __android_log_print(SLAndroidLogLevel_Verbose, slLogTag, __VA_ARGS__) |
| #else |
| #define SL_LOGV(...) do { } while (0) |
| #endif |
| |
| #else // !defined(ANDROID) |
| |
| #if (USE_LOG <= SLAndroidLogLevel_Error) |
| #define SL_LOGE(...) do { fprintf(stderr, "SL_LOGE: %s:%s:%d ", __FILE__, __FUNCTION__, __LINE__); \ |
| fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); } while(0) |
| #else |
| #define SL_LOGE(...) do { } while (0) |
| #endif |
| |
| #if (USE_LOG <= SLAndroidLogLevel_Warn) |
| #define SL_LOGW(...) do { fprintf(stderr, "SL_LOGW: %s:%s:%d ", __FILE__, __FUNCTION__, __LINE__); \ |
| fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); } while(0) |
| #else |
| #define SL_LOGW(...) do { } while (0) |
| #endif |
| |
| #if (USE_LOG <= SLAndroidLogLevel_Info) |
| #define SL_LOGI(...) do { fprintf(stderr, "SL_LOGI: %s:%s:%d ", __FILE__, __FUNCTION__, __LINE__); \ |
| fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); } while(0) |
| #else |
| #define SL_LOGI(...) do { } while (0) |
| #endif |
| |
| #if (USE_LOG <= SLAndroidLogLevel_Debug) |
| #define SL_LOGD(...) do { fprintf(stderr, "SL_LOGD: %s:%s:%d ", __FILE__, __FUNCTION__, __LINE__); \ |
| fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); } while(0) |
| #else |
| #define SL_LOGD(...) do { } while (0) |
| #endif |
| |
| #if (USE_LOG <= SLAndroidLogLevel_Verbose) |
| #define SL_LOGV(...) do { fprintf(stderr, "SL_LOGV: %s:%s:%d ", __FILE__, __FUNCTION__, __LINE__); \ |
| fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); } while(0) |
| #else |
| #define SL_LOGV(...) do { } while (0) |
| #endif |
| |
| #endif // ANDROID |