14f7ff21fSopenharmony_ci/*
24f7ff21fSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
34f7ff21fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
44f7ff21fSopenharmony_ci * you may not use this file except in compliance with the License.
54f7ff21fSopenharmony_ci * You may obtain a copy of the License at
64f7ff21fSopenharmony_ci *
74f7ff21fSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0
84f7ff21fSopenharmony_ci *
94f7ff21fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
104f7ff21fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
114f7ff21fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
124f7ff21fSopenharmony_ci * See the License for the specific language governing permissions and
134f7ff21fSopenharmony_ci * limitations under the License.
144f7ff21fSopenharmony_ci */
154f7ff21fSopenharmony_ci#ifndef IAM_LOGGER_H
164f7ff21fSopenharmony_ci#define IAM_LOGGER_H
174f7ff21fSopenharmony_ci
184f7ff21fSopenharmony_ci#include "hilog/log.h"
194f7ff21fSopenharmony_cinamespace OHOS {
204f7ff21fSopenharmony_cinamespace UserIam {
214f7ff21fSopenharmony_cinamespace Common {
224f7ff21fSopenharmony_ci#ifdef __FILE_NAME__
234f7ff21fSopenharmony_ci#define FINGERPRINT_AUTH_LOG_FILE __FILE_NAME__
244f7ff21fSopenharmony_ci#else
254f7ff21fSopenharmony_ci#define FINGERPRINT_AUTH_LOG_FILE (__builtin_strrchr(__FILE__, '/') ? __builtin_strrchr(__FILE__, '/') + 1 : __FILE__)
264f7ff21fSopenharmony_ci#endif
274f7ff21fSopenharmony_ci
284f7ff21fSopenharmony_ci#ifdef LOG_DOMAIN
294f7ff21fSopenharmony_ci#undef LOG_DOMAIN
304f7ff21fSopenharmony_ci#endif
314f7ff21fSopenharmony_ci
324f7ff21fSopenharmony_ci#define LOG_DOMAIN 0xD002405
334f7ff21fSopenharmony_ci
344f7ff21fSopenharmony_ci#ifdef LOG_TAG
354f7ff21fSopenharmony_ci#undef LOG_TAG
364f7ff21fSopenharmony_ci#endif
374f7ff21fSopenharmony_ci
384f7ff21fSopenharmony_ci#define FINGERPRINT_LOG_DEBUG(...) HILOG_DEBUG(LOG_CORE, __VA_ARGS__)
394f7ff21fSopenharmony_ci#define FINGERPRINT_LOG_INFO(...) HILOG_INFO(LOG_CORE, __VA_ARGS__)
404f7ff21fSopenharmony_ci#define FINGERPRINT_LOG_WARN(...) HILOG_WARN(LOG_CORE, __VA_ARGS__)
414f7ff21fSopenharmony_ci#define FINGERPRINT_LOG_ERROR(...) HILOG_ERROR(LOG_CORE, __VA_ARGS__)
424f7ff21fSopenharmony_ci#define FINGERPRINT_LOG_FATAL(...) HILOG_FATAL(LOG_CORE, __VA_ARGS__)
434f7ff21fSopenharmony_ci
444f7ff21fSopenharmony_ci#define ARGS(fmt, ...) \
454f7ff21fSopenharmony_ci    "[%{public}s@%{public}s:%{public}d] " fmt, __FUNCTION__, FINGERPRINT_AUTH_LOG_FILE, __LINE__, ##__VA_ARGS__
464f7ff21fSopenharmony_ci#define FINGERPRINT_LOG(level, ...) FINGERPRINT_LOG_##level(ARGS(__VA_ARGS__))
474f7ff21fSopenharmony_ci
484f7ff21fSopenharmony_ci#define IAM_LOGD(...) FINGERPRINT_LOG(DEBUG, __VA_ARGS__)
494f7ff21fSopenharmony_ci#define IAM_LOGI(...) FINGERPRINT_LOG(INFO, __VA_ARGS__)
504f7ff21fSopenharmony_ci#define IAM_LOGW(...) FINGERPRINT_LOG(WARN, __VA_ARGS__)
514f7ff21fSopenharmony_ci#define IAM_LOGE(...) FINGERPRINT_LOG(ERROR, __VA_ARGS__)
524f7ff21fSopenharmony_ci#define IAM_LOGF(...) FINGERPRINT_LOG(FATAL, __VA_ARGS__)
534f7ff21fSopenharmony_ci} // namespace Common
544f7ff21fSopenharmony_ci} // namespace UserIam
554f7ff21fSopenharmony_ci} // namespace OHOS
564f7ff21fSopenharmony_ci
574f7ff21fSopenharmony_ci#endif // IAM_LOGGER_H
58