1 /*
2  * Copyright (C) 2021 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef BLUETOOTH_LOG_H
17 #define BLUETOOTH_LOG_H
18 
19 #undef LOG_DOMAIN
20 #define LOG_DOMAIN 0xD000101
21 #ifndef LOG_TAG
22 #define LOG_TAG "Bluetooth"
23 #endif
24 
25 #include "hilog/log.h"
26 
27 #ifdef HILOGF
28 #undef HILOGF
29 #endif
30 
31 #ifdef HILOGE
32 #undef HILOGE
33 #endif
34 
35 #ifdef HILOGW
36 #undef HILOGW
37 #endif
38 
39 #ifdef HILOGI
40 #undef HILOGI
41 #endif
42 
43 #ifdef HILOGD
44 #undef HILOGD
45 #endif
46 
47 #define HILOGD(fmt, ...)                 \
48     HILOG_DEBUG(LOG_CORE, "[%{public}s(%{public}s:%{public}d)]" fmt,    \
49         __FILE_NAME__, __FUNCTION__, __LINE__, ##__VA_ARGS__)
50 #define HILOGI(fmt, ...)                \
51     HILOG_INFO(LOG_CORE, "[%{public}s(%{public}s:%{public}d)]" fmt,    \
52         __FILE_NAME__, __FUNCTION__, __LINE__, ##__VA_ARGS__)
53 #define HILOGW(fmt, ...)                \
54     HILOG_WARN(LOG_CORE, "[%{public}s(%{public}s:%{public}d)]" fmt,    \
55         __FILE_NAME__, __FUNCTION__, __LINE__, ##__VA_ARGS__)
56 #define HILOGE(fmt, ...)                 \
57     HILOG_ERROR(LOG_CORE, "[%{public}s(%{public}s:%{public}d)]" fmt,    \
58         __FILE_NAME__, __FUNCTION__, __LINE__, ##__VA_ARGS__)
59 #define HILOGF(fmt, ...)                 \
60     HILOG_FATAL(LOG_CORE, "[%{public}s(%{public}s:%{public}d)]" fmt,    \
61         __FILE_NAME__, __FUNCTION__, __LINE__, ##__VA_ARGS__)
62 
63 #ifdef CHECK_AND_RETURN_LOG
64 #undef CHECK_AND_RETURN_LOG
65 #endif
66 
67 #define CHECK_AND_RETURN_LOG(cond, fmt, ...)        \
68     do {                                            \
69         if (!(cond)) {                              \
70             HILOGE(fmt, ##__VA_ARGS__);             \
71             return;                                 \
72         }                                           \
73     } while (0)
74 
75 #ifdef CHECK_AND_RETURN_LOG_RET
76 #undef CHECK_AND_RETURN_LOG_RET
77 #endif
78 
79 #define CHECK_AND_RETURN_LOG_RET(cond, ret, fmt, ...)               \
80     do {                                                            \
81         if (!(cond)) {                                              \
82             HILOGE(fmt, ##__VA_ARGS__);                             \
83             return ret;                                             \
84         }                                                           \
85     } while (0)
86 
87 #endif  // BLUETOOTH_LOG_H
88