1484543d1Sopenharmony_ci/*
2484543d1Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
3484543d1Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4484543d1Sopenharmony_ci * you may not use this file except in compliance with the License.
5484543d1Sopenharmony_ci * You may obtain a copy of the License at
6484543d1Sopenharmony_ci *
7484543d1Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8484543d1Sopenharmony_ci *
9484543d1Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10484543d1Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11484543d1Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12484543d1Sopenharmony_ci * See the License for the specific language governing permissions and
13484543d1Sopenharmony_ci * limitations under the License.
14484543d1Sopenharmony_ci */
15484543d1Sopenharmony_ci
16484543d1Sopenharmony_ci#ifndef __LOG_BASE_H__
17484543d1Sopenharmony_ci#define __LOG_BASE_H__
18484543d1Sopenharmony_ci
19484543d1Sopenharmony_ci#include <stdio.h>
20484543d1Sopenharmony_ci
21484543d1Sopenharmony_civoid LogErr(const char* format, ...);
22484543d1Sopenharmony_civoid LogWarn(const char* format, ...);
23484543d1Sopenharmony_civoid LogInfo(const char* format, ...);
24484543d1Sopenharmony_civoid LogDebug(const char* format, ...);
25484543d1Sopenharmony_ci
26484543d1Sopenharmony_ciint GetFFRTLogLevel(void);
27484543d1Sopenharmony_ci
28484543d1Sopenharmony_ci#define FFRT_LOG(level, format, ...) \
29484543d1Sopenharmony_ci    do { \
30484543d1Sopenharmony_ci        if ((level) > GetFFRTLogLevel()) \
31484543d1Sopenharmony_ci            break; \
32484543d1Sopenharmony_ci        if (level == FFRT_LOG_ERROR) { \
33484543d1Sopenharmony_ci            LogErr("%u:%s:%d " format "\n", GetLogId(), __func__, __LINE__, ##__VA_ARGS__); \
34484543d1Sopenharmony_ci        } else if (level == FFRT_LOG_WARN) { \
35484543d1Sopenharmony_ci            LogWarn("%u:%s:%d " format "\n", GetLogId(), __func__, __LINE__, ##__VA_ARGS__); \
36484543d1Sopenharmony_ci        } else if (level == FFRT_LOG_INFO) { \
37484543d1Sopenharmony_ci            LogInfo("%u:%s:%d " format "\n", GetLogId(), __func__, __LINE__, ##__VA_ARGS__); \
38484543d1Sopenharmony_ci        } else if (level == FFRT_LOG_DEBUG) { \
39484543d1Sopenharmony_ci            LogDebug("%u:%s:%d " format "\n", GetLogId(), __func__, __LINE__, ##__VA_ARGS__); \
40484543d1Sopenharmony_ci        } else { \
41484543d1Sopenharmony_ci            printf("Log Level is Invalid!"); \
42484543d1Sopenharmony_ci        } \
43484543d1Sopenharmony_ci    } while (0)
44484543d1Sopenharmony_ci
45484543d1Sopenharmony_ci#endif // __LOG_BASE_H__