1c7afe287Sopenharmony_ci/* 2c7afe287Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 3c7afe287Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4c7afe287Sopenharmony_ci * you may not use this file except in compliance with the License. 5c7afe287Sopenharmony_ci * You may obtain a copy of the License at 6c7afe287Sopenharmony_ci * 7c7afe287Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8c7afe287Sopenharmony_ci * 9c7afe287Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10c7afe287Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11c7afe287Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12c7afe287Sopenharmony_ci * See the License for the specific language governing permissions and 13c7afe287Sopenharmony_ci * limitations under the License. 14c7afe287Sopenharmony_ci */ 15c7afe287Sopenharmony_ci 16c7afe287Sopenharmony_ci#ifndef OHOS_CLOUD_OAID_HILOG_WRAPPER_H 17c7afe287Sopenharmony_ci#define OHOS_CLOUD_OAID_HILOG_WRAPPER_H 18c7afe287Sopenharmony_ci 19c7afe287Sopenharmony_ci#include "hilog/log.h" 20c7afe287Sopenharmony_ci 21c7afe287Sopenharmony_cinamespace OHOS { 22c7afe287Sopenharmony_cinamespace Cloud { 23c7afe287Sopenharmony_ci// param of log interface, such as OAID_HILOGF. 24c7afe287Sopenharmony_cienum OAIDSubModule { 25c7afe287Sopenharmony_ci OAID_MODULE_INNERKIT = 0, 26c7afe287Sopenharmony_ci OAID_MODULE_CLIENT, 27c7afe287Sopenharmony_ci OAID_MODULE_SERVICE, 28c7afe287Sopenharmony_ci OAID_MODULE_JAVAKIT, // java kit, defined to avoid repeated use of domain. 29c7afe287Sopenharmony_ci OAID_MODULE_JNI, 30c7afe287Sopenharmony_ci OAID_MODULE_COMMON, 31c7afe287Sopenharmony_ci OAID_MODULE_JS_NAPI, 32c7afe287Sopenharmony_ci OAID_MODULE_TEST, 33c7afe287Sopenharmony_ci OAID_MODULE_BUTT, 34c7afe287Sopenharmony_ci}; 35c7afe287Sopenharmony_ci 36c7afe287Sopenharmony_cistatic constexpr unsigned int OAID_DOMAIN_ID = 0xD004701; 37c7afe287Sopenharmony_ci 38c7afe287Sopenharmony_cistatic constexpr OHOS::HiviewDFX::HiLogLabel OAID_MODULE_LABEL[OAID_MODULE_BUTT] = { 39c7afe287Sopenharmony_ci { LOG_CORE, OAID_DOMAIN_ID, "OAIDInnerKit" }, 40c7afe287Sopenharmony_ci { LOG_CORE, OAID_DOMAIN_ID, "OAIDClient" }, 41c7afe287Sopenharmony_ci { LOG_CORE, OAID_DOMAIN_ID, "OAIDService" }, 42c7afe287Sopenharmony_ci { LOG_CORE, OAID_DOMAIN_ID, "OAIDJavaKit" }, 43c7afe287Sopenharmony_ci { LOG_CORE, OAID_DOMAIN_ID, "OAIDJni" }, 44c7afe287Sopenharmony_ci { LOG_CORE, OAID_DOMAIN_ID, "OAIDCommon" }, 45c7afe287Sopenharmony_ci { LOG_CORE, OAID_DOMAIN_ID, "OAIDJSNAPI" }, 46c7afe287Sopenharmony_ci { LOG_CORE, OAID_DOMAIN_ID, "OAIDTest" }, 47c7afe287Sopenharmony_ci}; 48c7afe287Sopenharmony_ci 49c7afe287Sopenharmony_ci#define R_FILENAME (__builtin_strrchr(__FILE__, '/') ? __builtin_strrchr(__FILE__, '/') + 1 : __FILE__) 50c7afe287Sopenharmony_ci#define R_FORMATED(fmt, ...) "[%{public}s] %{public}s# " fmt, R_FILENAME, __FUNCTION__, ##__VA_ARGS__ 51c7afe287Sopenharmony_ci 52c7afe287Sopenharmony_ci// In order to improve performance, do not check the module range. 53c7afe287Sopenharmony_ci// Besides, make sure module is less than OAID_MODULE_BUTT. 54c7afe287Sopenharmony_ci#define OAID_HILOGF(module, ...) \ 55c7afe287Sopenharmony_ci (void)OHOS::HiviewDFX::HiLog::Fatal(OHOS::Cloud::OAID_MODULE_LABEL[module], R_FORMATED(__VA_ARGS__)) 56c7afe287Sopenharmony_ci#define OAID_HILOGE(module, ...) \ 57c7afe287Sopenharmony_ci (void)OHOS::HiviewDFX::HiLog::Error(OHOS::Cloud::OAID_MODULE_LABEL[module], R_FORMATED(__VA_ARGS__)) 58c7afe287Sopenharmony_ci#define OAID_HILOGW(module, ...) \ 59c7afe287Sopenharmony_ci (void)OHOS::HiviewDFX::HiLog::Warn(OHOS::Cloud::OAID_MODULE_LABEL[module], R_FORMATED(__VA_ARGS__)) 60c7afe287Sopenharmony_ci#define OAID_HILOGI(module, ...) \ 61c7afe287Sopenharmony_ci (void)OHOS::HiviewDFX::HiLog::Info(OHOS::Cloud::OAID_MODULE_LABEL[module], R_FORMATED(__VA_ARGS__)) 62c7afe287Sopenharmony_ci#define OAID_HILOGD(module, ...) \ 63c7afe287Sopenharmony_ci (void)OHOS::HiviewDFX::HiLog::Debug(OHOS::Cloud::OAID_MODULE_LABEL[module], R_FORMATED(__VA_ARGS__)) 64c7afe287Sopenharmony_ci} // namespace Cloud 65c7afe287Sopenharmony_ci} // namespace OHOS 66c7afe287Sopenharmony_ci#endif // OHOS_CLOUD_OAID_HILOG_WRAPPER_H 67