1/*
2 * Copyright (c) 2021 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 UTILS_LOG_H
17#define UTILS_LOG_H
18
19#include <string>
20
21#include "hilog/log_c.h"
22#include "hilog/log_cpp.h"
23
24namespace OHOS {
25#ifndef LOG_DOMAIN
26#define LOG_DOMAIN 0xD001600
27#endif
28
29#ifndef LOG_TAG
30#define LOG_TAG "distributedfile"
31#endif
32
33std::string GetFileNameFromFullPath(const char *str);
34
35#define LOGD(fmt, ...) HILOG_DEBUG(LOG_CORE, "[%{public}s:%{public}d->%{public}s] " fmt, \
36                            GetFileNameFromFullPath(__FILE__).c_str(), __LINE__, __FUNCTION__, ##__VA_ARGS__)
37#define LOGI(fmt, ...) HILOG_INFO(LOG_CORE, "[%{public}s:%{public}d->%{public}s] " fmt, \
38                            GetFileNameFromFullPath(__FILE__).c_str(), __LINE__, __FUNCTION__,  ##__VA_ARGS__)
39#define LOGW(fmt, ...) HILOG_WARN(LOG_CORE, "[%{public}s:%{public}d->%{public}s] " fmt, \
40                            GetFileNameFromFullPath(__FILE__).c_str(), __LINE__, __FUNCTION__, ##__VA_ARGS__)
41#define LOGE(fmt, ...) HILOG_ERROR(LOG_CORE, "[%{public}s:%{public}d->%{public}s] " fmt, \
42                            GetFileNameFromFullPath(__FILE__).c_str(), __LINE__, __FUNCTION__,  ##__VA_ARGS__)
43#define LOGF(fmt, ...) HILOG_FATAL(LOG_CORE, "[%{public}s:%{public}d->%{public}s] " fmt, \
44                            GetFileNameFromFullPath(__FILE__).c_str(), __LINE__, __FUNCTION__,  ##__VA_ARGS__)
45
46std::string GetAnonyString(const std::string &value);
47} // namespace OHOS
48#endif // UTILS_LOG_H