1 /* 2 * Copyright (C) 2024 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 IMAGE_EFFECT_EFFECT_LOG_H 17 #define IMAGE_EFFECT_EFFECT_LOG_H 18 19 #include <hilog/log.h> 20 21 #ifdef __FILE_NAME__ 22 #define LOG_FILE_NAME __FILE_NAME__ 23 #else 24 #define LOG_FILE_NAME (__builtin_strrchr(__FILE__, '/') ? __builtin_strrchr(__FILE__, '/') + 1 : __FILE__) 25 #endif 26 27 #undef LOG_DOMAIN 28 #define LOG_DOMAIN 0xD002B6A 29 30 #undef LOG_TAG 31 #define LOG_TAG "ImageEffect" 32 33 #ifndef LOG_LABEL 34 #define LOG_LABEL \ 35 { \ 36 LOG_CORE, LOG_DOMAIN, LOG_TAG \ 37 } 38 #endif 39 40 #define EFFECT_LOG(func, fmt, args...) \ 41 do { \ 42 (void)func(LOG_CORE, "[%{public}s()@%{public}s:%{public}d] " fmt, __FILE_NAME__, __FUNCTION__, __LINE__, \ 43 ##args); \ 44 } while (0) 45 46 #define EFFECT_LOGF(fmt, ...) HILOG_FATAL(LOG_CORE, fmt, ##__VA_ARGS__) 47 #define EFFECT_LOGE(fmt, ...) HILOG_ERROR(LOG_CORE, fmt, ##__VA_ARGS__) 48 #define EFFECT_LOGW(fmt, ...) HILOG_WARN(LOG_CORE, fmt, ##__VA_ARGS__) 49 #define EFFECT_LOGI(fmt, ...) HILOG_INFO(LOG_CORE, fmt, ##__VA_ARGS__) 50 #define EFFECT_LOGD(fmt, ...) EFFECT_LOG(HILOG_DEBUG, fmt, ##__VA_ARGS__) 51 52 #define CHECK_AND_RETURN_RET_LOG(cond, ret, fmt, ...) \ 53 do { \ 54 if (!(cond)) { \ 55 EFFECT_LOGE(fmt, ##__VA_ARGS__); \ 56 return ret; \ 57 } \ 58 } while (0) 59 60 #define CHECK_AND_RETURN_LOG(cond, fmt, ...) \ 61 do { \ 62 if (!(cond)) { \ 63 EFFECT_LOGE(fmt, ##__VA_ARGS__); \ 64 return; \ 65 } \ 66 } while (0) 67 68 #define CHECK_AND_CONTINUE_LOG(cond, fmt, ...) \ 69 if (!(cond)) { \ 70 EFFECT_LOGE(fmt, ##__VA_ARGS__); \ 71 continue; \ 72 } 73 74 #define CHECK_AND_RETURN_RET(cond, ret) \ 75 do { \ 76 if (!(cond)) { \ 77 return ret; \ 78 } \ 79 } while (0) 80 81 #ifndef CHECK_AND_RETURN 82 #define CHECK_AND_RETURN(exec) \ 83 do { \ 84 bool returnValue = (exec); \ 85 if (!returnValue) { \ 86 EFFECT_LOGE("CHECK_AND_RETURN " #exec); \ 87 return; \ 88 } \ 89 } while (0) 90 #endif 91 92 #endif // IMAGE_EFFECT_EFFECT_LOG_H 93