blob: 475ed2ed19d37b5b2dfb0b6fe51f5ea7a54389dc [file] [log] [blame]
Logan2f789f32011-02-28 05:21:17 +08001/*
2 * Copyright 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#ifndef BCC_DEBUGHELPER_H
18#define BCC_DEBUGHELPER_H
19
20#include "Config.h"
21
22#if USE_LOGGER
23
24#define LOG_TAG "bcc"
25#include <cutils/log.h>
26
27#else // !USE_LOGGER
28
29#undef LOGV
30#undef LOGI
31#undef LOGD
32#undef LOGW
33#undef LOGE
34#undef LOGA
35
36#define LOGV(...)
37#define LOGI(...)
38#define LOGD(...)
39#define LOGW(...)
40#define LOGE(...)
41#define LOGA(...)
42
43#endif
44
45
46#if !USE_FUNC_LOGGER
47
48#define BCC_FUNC_LOGGER()
49
50#else // USE_FUNC_LOGGER
51
Logan Chien998899f2011-06-13 23:18:09 +080052#if defined(__cplusplus)
Logan2f789f32011-02-28 05:21:17 +080053namespace bcc {
54 class FuncLogger {
55 private:
56 char const *mFuncName;
57
58 public:
59 FuncLogger(char const *name) : mFuncName(name) {
60 LOGD("---> BEGIN: libbcc [ %s ]\n", name);
61 }
62
63 ~FuncLogger() {
64 LOGD("---> END: libbcc [ %s ]\n", mFuncName);
65 }
66 };
67} // namespace bcc
68
69#define BCC_FUNC_LOGGER() bcc::FuncLogger XX__FuncLogger(__func__)
Logan Chien998899f2011-06-13 23:18:09 +080070#endif
Logan2f789f32011-02-28 05:21:17 +080071
72#endif
73
74#endif // BCC_DEBUGHELPER_H