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 UPLOAD_HILOG_WRAPPER_H 17 #define UPLOAD_HILOG_WRAPPER_H 18 19 #include "hilog/log.h" 20 21 namespace OHOS::Request::Upload { 22 // param of log interface, such as UPLOAD_HILOGF. 23 enum UploadSubModule { 24 UPLOAD_MODULE_INNERKIT = 0, 25 UPLOAD_MODULE_FRAMEWORK, 26 UPLOAD_MODULE_COMMON, 27 UPLOAD_MODULE_JS_NAPI, 28 UPLOAD_MODULE_TEST, 29 UPLOAD_MODULE_BUTT, 30 }; 31 32 // 0xD001C50: subsystem:miscservices module:upload_native, 8 bits reserved. 33 static constexpr unsigned int BASE_UPLOAD_DOMAIN_ID = 0xD001C50; 34 35 enum UploadDomainId { 36 UPLOAD_INNERKIT_DOMAIN = BASE_UPLOAD_DOMAIN_ID + UPLOAD_MODULE_INNERKIT, 37 UPLOAD_FRAMEWORK_DOMAIN, 38 UPLOAD_COMMON_DOMAIN, 39 UPLOAD_JS_NAPI, 40 UPLOAD_TEST, 41 UPLOAD_BUTT, 42 }; 43 44 static constexpr OHOS::HiviewDFX::HiLogLabel UPLOAD_MODULE_LABEL[UPLOAD_MODULE_BUTT] = { 45 { LOG_CORE, UPLOAD_INNERKIT_DOMAIN, "UploadInnerKit" }, 46 { LOG_CORE, UPLOAD_FRAMEWORK_DOMAIN, "UploadFramework" }, 47 { LOG_CORE, UPLOAD_COMMON_DOMAIN, "UploadCommon" }, 48 { LOG_CORE, UPLOAD_JS_NAPI, "UploadJSNAPI" }, 49 { LOG_CORE, UPLOAD_TEST, "UploadTest" }, 50 }; 51 52 #define FILENAME (__builtin_strrchr(__FILE__, '/') ? __builtin_strrchr(__FILE__, '/') + 1 : __FILE__) 53 #define FORMATTED(fmt, ...) "[%{public}s] %{public}s# " fmt, FILENAME, __FUNCTION__, ##__VA_ARGS__ 54 55 // In order to improve performance, do not check the module range. 56 // Besides, make sure module is less than UPLOAD_MODULE_BUTT. 57 #define UPLOAD_HILOGF(module, fmt, ...) \ 58 (void)HILOG_IMPL(LOG_CORE, LOG_FATAL, UPLOAD_MODULE_LABEL[module].domain, UPLOAD_MODULE_LABEL[module].tag, \ 59 "[%{public}s] %{public}s# " fmt, FILENAME, __FUNCTION__, ##__VA_ARGS__) 60 #define UPLOAD_HILOGE(module, fmt, ...) \ 61 (void)HILOG_IMPL(LOG_CORE, LOG_ERROR, UPLOAD_MODULE_LABEL[module].domain, UPLOAD_MODULE_LABEL[module].tag, \ 62 "[%{public}s] %{public}s# " fmt, FILENAME, __FUNCTION__, ##__VA_ARGS__) 63 #define UPLOAD_HILOGW(module, fmt, ...) \ 64 (void)HILOG_IMPL(LOG_CORE, LOG_WARN, UPLOAD_MODULE_LABEL[module].domain, UPLOAD_MODULE_LABEL[module].tag, \ 65 "[%{public}s] %{public}s# " fmt, FILENAME, __FUNCTION__, ##__VA_ARGS__) 66 #define UPLOAD_HILOGI(module, fmt, ...) \ 67 (void)HILOG_IMPL(LOG_CORE, LOG_INFO, UPLOAD_MODULE_LABEL[module].domain, UPLOAD_MODULE_LABEL[module].tag, \ 68 "[%{public}s] %{public}s# " fmt, FILENAME, __FUNCTION__, ##__VA_ARGS__) 69 #define UPLOAD_HILOGD(module, fmt, ...) \ 70 (void)HILOG_IMPL(LOG_CORE, LOG_DEBUG, UPLOAD_MODULE_LABEL[module].domain, UPLOAD_MODULE_LABEL[module].tag, \ 71 "[%{public}s] %{public}s# " fmt, FILENAME, __FUNCTION__, ##__VA_ARGS__) 72 } // namespace OHOS::Request::Upload 73 #endif // UPLOAD_HILOG_WRAPPER_H 74