1 /*
2  * Copyright (c) 2023 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 ROSEN_MODULES_TEXGINE_EXPORT_TEXGINE_UTILS_EXLOG_H
17 #define ROSEN_MODULES_TEXGINE_EXPORT_TEXGINE_UTILS_EXLOG_H
18 
19 #include "logger.h"
20 
21 namespace OHOS {
22 namespace Rosen {
23 namespace TextEngine {
24 void ExTime(Logger &logger, enum Logger::LOG_PHASE phase);
25 
26 #define LOGNEX(level, ...) Logger(LOGGER_ARG(level), ##__VA_ARGS__, \
27     Logger::SetToNoReturn, Logger::SetToContinue, Logger::OutputByFileLog, "exlog", NULL)
28 #define LOGCEX(level, ...) Logger(LOGGER_ARG(level), ##__VA_ARGS__, \
29     Logger::SetToContinue, Logger::OutputByFileLog, "exlog", NULL)
30 #define LOGEX_FILE(level, ...) Logger(LOGGER_ARG(level), ##__VA_ARGS__, \
31     Logger::OutputByFileLog, "exlog", NULL)
32 #define LOGEX_FUNC(level, ...) Logger(LOGGER_ARG(level), ##__VA_ARGS__, \
33     ExTime, Logger::AppendFunc, Logger::OutputByFileLog, "exlog", NULL)
34 #define LOGEX_FUNC_LINE(level, ...) Logger(LOGGER_ARG(level), ##__VA_ARGS__, \
35     ExTime, Logger::AppendFuncLine, Logger::OutputByFileLog, "exlog", NULL)
36 #define LOGEX_FILE_LINE(level, ...) Logger(LOGGER_ARG(level), ##__VA_ARGS__, \
37     ExTime, Logger::AppendFileLine, Logger::OutputByFileLog, "exlog", NULL)
38 #define LOGEX_FFL(level, ...) Logger(LOGGER_ARG(level), ##__VA_ARGS__, \
39     ExTime, Logger::AppendFileFuncLine, Logger::OutputByFileLog, "exlog", NULL)
40 #define LOGEX_PT_FILE(level, ...) Logger(LOGGER_ARG(level), ##__VA_ARGS__, \
41     Logger::AppendPidTid, Logger::OutputByFileLog, "exlog", NULL)
42 #define LOGEX_PT_FUNC(level, ...) Logger(LOGGER_ARG(level), ##__VA_ARGS__, \
43     ExTime, Logger::AppendPidTid, Logger::AppendFunc, Logger::OutputByFileLog, "exlog", NULL)
44 #define LOGEX_PT_FUNC_LINE(level, ...) Logger(LOGGER_ARG(level), ##__VA_ARGS__, \
45     ExTime, Logger::AppendPidTid, Logger::AppendFuncLine, Logger::OutputByFileLog, "exlog", NULL)
46 #define LOGEX_PT_FILE_LINE(level, ...) Logger(LOGGER_ARG(level), ##__VA_ARGS__, \
47     ExTime, Logger::AppendPidTid, Logger::AppendFileLine, Logger::OutputByFileLog, "exlog", NULL)
48 #define LOGEX_PT_FFL(level, ...) Logger(LOGGER_ARG(level), ##__VA_ARGS__, \
49     ExTime, Logger::AppendPidTid, Logger::AppendFileFuncLine, Logger::OutputByFileLog, "exlog", NULL)
50 
51 #ifdef TEXGINE_ENABLE_DEBUGLOG
52 #define LOGNEX_DEBUG(...) LOGNEX(DEBUG, ##__VA_ARGS__)
53 #define LOGCEX_DEBUG(...) LOGCEX(DEBUG, ##__VA_ARGS__)
54 #define LOGEX_FILE_DEBUG(...) LOGEX_FILE(DEBUG, ##__VA_ARGS__)
55 #define LOGEX_FUNC_DEBUG(...) LOGEX_FUNC(DEBUG, ##__VA_ARGS__)
56 #define LOGEX_FUNC_LINE_DEBUG(...) LOGEX_FUNC_LINE(DEBUG, ##__VA_ARGS__)
57 #define LOGEX_FILE_LINE_DEBUG(...) LOGEX_FILE_LINE(DEBUG, ##__VA_ARGS__)
58 #define LOGEX_FFL_DEBUG(...) LOGEX_FFL(DEBUG, ##__VA_ARGS__)
59 #define LOGEX_PT_FILE_DEBUG(...) LOGEX_PT_FILE(DEBUG, ##__VA_ARGS__)
60 #define LOGEX_PT_FUNC_DEBUG(...) LOGEX_PT_FUNC(DEBUG, ##__VA_ARGS__)
61 #define LOGEX_PT_FUNC_LINE_DEBUG(...) LOGEX_PT_FUNC_LINE(DEBUG, ##__VA_ARGS__)
62 #define LOGEX_PT_FILE_LINE_DEBUG(...) LOGEX_PT_FILE_LINE(DEBUG, ##__VA_ARGS__)
63 #define LOGEX_PT_FFL_DEBUG(...) LOGEX_PT_FFL(DEBUG, ##__VA_ARGS__)
64 #else
65 #define LOGNEX_DEBUG(...) NoLogger()
66 #define LOGCEX_DEBUG(...) NoLogger()
67 #define LOGEX_FILE_DEBUG(...) NoLogger()
68 #define LOGEX_FUNC_DEBUG(...) NoLogger()
69 #define LOGEX_FUNC_LINE_DEBUG(...) NoLogger()
70 #define LOGEX_FILE_LINE_DEBUG(...) NoLogger()
71 #define LOGEX_FFL_DEBUG(...) NoLogger()
72 #define LOGEX_PT_FILE_DEBUG(...) NoLogger()
73 #define LOGEX_PT_FUNC_DEBUG(...) NoLogger()
74 #define LOGEX_PT_FUNC_LINE_DEBUG(...) NoLogger()
75 #define LOGEX_PT_FILE_LINE_DEBUG(...) NoLogger()
76 #define LOGEX_PT_FFL_DEBUG(...) NoLogger()
77 #endif
78 } // namespace TextEngine
79 } // namespace Roesen
80 } // namespace OHOS
81 
82 #endif // ROSEN_MODULES_TEXGINE_EXPORT_TEXGINE_UTILS_EXLOG_H
83