1 /* 2 * Copyright (c) 2022 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 OHOS_DCAMERA_LOG_H 17 #define OHOS_DCAMERA_LOG_H 18 19 namespace OHOS { 20 namespace DistributedHardware { 21 typedef enum { 22 DH_LOG_DEBUG, 23 DH_LOG_INFO, 24 DH_LOG_WARN, 25 DH_LOG_ERROR, 26 } DHLogLevel; 27 28 void DHLog(DHLogLevel logLevel, const char *fmt, ...); 29 #define CHECK_AND_RETURN_RET_LOG(cond, ret, fmt, ...) \ 30 do { \ 31 if ((cond)) { \ 32 DHLOGE(fmt, ##__VA_ARGS__); \ 33 return (ret); \ 34 } \ 35 } while (0) 36 37 #define CHECK_AND_RETURN_LOG(cond, fmt, ...) \ 38 do { \ 39 if ((cond)) { \ 40 DHLOGE(fmt, ##__VA_ARGS__); \ 41 return; \ 42 } \ 43 } while (0) 44 45 #define CHECK_AND_LOG(cond, fmt, ...) \ 46 do { \ 47 if ((cond)) { \ 48 DHLOGE(fmt, ##__VA_ARGS__); \ 49 } \ 50 } while (0) 51 52 #define ULOGD(fmt, ...) DHLog(DH_LOG_DEBUG, \ 53 (std::string("[") + DH_LOG_TAG + "][" + __FUNCTION__ + "]:" + fmt).c_str(), ##__VA_ARGS__) 54 55 #define ULOGI(fmt, ...) DHLog(DH_LOG_INFO, \ 56 (std::string("[") + DH_LOG_TAG + "][" + __FUNCTION__ + "]:" + fmt).c_str(), ##__VA_ARGS__) 57 58 #define ULOGW(fmt, ...) DHLog(DH_LOG_WARN, \ 59 (std::string("[") + DH_LOG_TAG + "][" + __FUNCTION__ + "]:" + fmt).c_str(), ##__VA_ARGS__) 60 61 #define ULOGE(fmt, ...) DHLog(DH_LOG_ERROR, \ 62 (std::string("[") + DH_LOG_TAG + "][" + __FUNCTION__ + "]:" + fmt).c_str(), ##__VA_ARGS__) 63 } // namespace DistributedHardware 64 } // namespace OHOS 65 #endif // OHOS_DCAMERA_LOG_H 66