1cc290419Sopenharmony_ci/* 2cc290419Sopenharmony_ci * Copyright (C) 2024 Huawei Device Co., Ltd. 3cc290419Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4cc290419Sopenharmony_ci * you may not use this file except in compliance with the License. 5cc290419Sopenharmony_ci * You may obtain a copy of the License at 6cc290419Sopenharmony_ci * 7cc290419Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8cc290419Sopenharmony_ci * 9cc290419Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10cc290419Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11cc290419Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12cc290419Sopenharmony_ci * See the License for the specific language governing permissions and 13cc290419Sopenharmony_ci * limitations under the License. 14cc290419Sopenharmony_ci */ 15cc290419Sopenharmony_ci// ############################# enum define ################################### 16cc290419Sopenharmony_ci#ifndef HDC_LOG_H 17cc290419Sopenharmony_ci#define HDC_LOG_H 18cc290419Sopenharmony_ci 19cc290419Sopenharmony_ci#include <cinttypes> 20cc290419Sopenharmony_ci#include <cstdarg> 21cc290419Sopenharmony_ci#include <string> 22cc290419Sopenharmony_ci#include "base.h" 23cc290419Sopenharmony_ci 24cc290419Sopenharmony_cinamespace Hdc { 25cc290419Sopenharmony_ciusing namespace std; 26cc290419Sopenharmony_ci 27cc290419Sopenharmony_cienum LogLevel { 28cc290419Sopenharmony_ci LOG_OFF, 29cc290419Sopenharmony_ci LOG_FATAL, 30cc290419Sopenharmony_ci LOG_WARN, 31cc290419Sopenharmony_ci LOG_INFO, // default 32cc290419Sopenharmony_ci LOG_DEBUG, 33cc290419Sopenharmony_ci LOG_ALL, 34cc290419Sopenharmony_ci LOG_VERBOSE, 35cc290419Sopenharmony_ci LOG_LAST = LOG_VERBOSE, // tail, not use 36cc290419Sopenharmony_ci}; 37cc290419Sopenharmony_ci 38cc290419Sopenharmony_ciinline string GetFileNameAny(const string &path) 39cc290419Sopenharmony_ci{ 40cc290419Sopenharmony_ci string tmpString = path; 41cc290419Sopenharmony_ci size_t tmpNum = tmpString.rfind('/'); 42cc290419Sopenharmony_ci if (tmpNum == std::string::npos) { 43cc290419Sopenharmony_ci tmpNum = tmpString.rfind('\\'); 44cc290419Sopenharmony_ci if (tmpNum == std::string::npos) { 45cc290419Sopenharmony_ci return tmpString; 46cc290419Sopenharmony_ci } 47cc290419Sopenharmony_ci } 48cc290419Sopenharmony_ci tmpString = tmpString.substr(tmpNum + 1, tmpString.size() - tmpNum); 49cc290419Sopenharmony_ci return tmpString; 50cc290419Sopenharmony_ci} 51cc290419Sopenharmony_ci 52cc290419Sopenharmony_civoid PrintLogEx(const char *functionName, int line, uint8_t logLevel, const char *msg, ...); 53cc290419Sopenharmony_ci 54cc290419Sopenharmony_ci#define WRITE_LOG(level, fmt, ...) PrintLogEx(__FILE__, __LINE__, level, fmt, ##__VA_ARGS__) 55cc290419Sopenharmony_ci} 56cc290419Sopenharmony_ci#endif 57