11c1b0f19Sopenharmony_ci/* 21c1b0f19Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 31c1b0f19Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 41c1b0f19Sopenharmony_ci * you may not use this file except in compliance with the License. 51c1b0f19Sopenharmony_ci * You may obtain a copy of the License at 61c1b0f19Sopenharmony_ci * 71c1b0f19Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 81c1b0f19Sopenharmony_ci * 91c1b0f19Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 101c1b0f19Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 111c1b0f19Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 121c1b0f19Sopenharmony_ci * See the License for the specific language governing permissions and 131c1b0f19Sopenharmony_ci * limitations under the License. 141c1b0f19Sopenharmony_ci */ 151c1b0f19Sopenharmony_ci 161c1b0f19Sopenharmony_ci#include "dh_log.h" 171c1b0f19Sopenharmony_ci 181c1b0f19Sopenharmony_ci#include "cstdlib" 191c1b0f19Sopenharmony_ci#include "string" 201c1b0f19Sopenharmony_ci 211c1b0f19Sopenharmony_ci#include "securec.h" 221c1b0f19Sopenharmony_ci 231c1b0f19Sopenharmony_ci#ifdef HI_LOG_ENABLE 241c1b0f19Sopenharmony_ci#include "hilog/log.h" 251c1b0f19Sopenharmony_ci#else 261c1b0f19Sopenharmony_ci#include <cstdio> 271c1b0f19Sopenharmony_ci#endif 281c1b0f19Sopenharmony_ci 291c1b0f19Sopenharmony_cinamespace OHOS { 301c1b0f19Sopenharmony_cinamespace DistributedHardware { 311c1b0f19Sopenharmony_ciconst std::string DC_LOG_TITLE_TAG = "DCAMERA"; 321c1b0f19Sopenharmony_ciconstexpr int32_t LOG_MAX_LEN = 4096; 331c1b0f19Sopenharmony_ci 341c1b0f19Sopenharmony_cistatic void DHLogOut(DHLogLevel logLevel, const char *logBuf) 351c1b0f19Sopenharmony_ci{ 361c1b0f19Sopenharmony_ci#ifdef HI_LOG_ENABLE 371c1b0f19Sopenharmony_ci LogLevel hiLogLevel = LOG_INFO; 381c1b0f19Sopenharmony_ci switch (logLevel) { 391c1b0f19Sopenharmony_ci case DH_LOG_DEBUG: 401c1b0f19Sopenharmony_ci hiLogLevel = LOG_DEBUG; 411c1b0f19Sopenharmony_ci break; 421c1b0f19Sopenharmony_ci case DH_LOG_INFO: 431c1b0f19Sopenharmony_ci hiLogLevel = LOG_INFO; 441c1b0f19Sopenharmony_ci break; 451c1b0f19Sopenharmony_ci case DH_LOG_WARN: 461c1b0f19Sopenharmony_ci hiLogLevel = LOG_WARN; 471c1b0f19Sopenharmony_ci break; 481c1b0f19Sopenharmony_ci case DH_LOG_ERROR: 491c1b0f19Sopenharmony_ci hiLogLevel = LOG_ERROR; 501c1b0f19Sopenharmony_ci break; 511c1b0f19Sopenharmony_ci default: 521c1b0f19Sopenharmony_ci break; 531c1b0f19Sopenharmony_ci } 541c1b0f19Sopenharmony_ci (void)HiLogPrint(LOG_CORE, hiLogLevel, LOG_DOMAIN, DC_LOG_TITLE_TAG.c_str(), "%{public}s", logBuf); 551c1b0f19Sopenharmony_ci#else 561c1b0f19Sopenharmony_ci switch (logLevel) { 571c1b0f19Sopenharmony_ci case DH_LOG_DEBUG: 581c1b0f19Sopenharmony_ci printf("[D]%s\n", logBuf); 591c1b0f19Sopenharmony_ci break; 601c1b0f19Sopenharmony_ci case DH_LOG_INFO: 611c1b0f19Sopenharmony_ci printf("[I]%s\n", logBuf); 621c1b0f19Sopenharmony_ci break; 631c1b0f19Sopenharmony_ci case DH_LOG_WARN: 641c1b0f19Sopenharmony_ci printf("[W]%s\n", logBuf); 651c1b0f19Sopenharmony_ci break; 661c1b0f19Sopenharmony_ci case DH_LOG_ERROR: 671c1b0f19Sopenharmony_ci printf("[E]%s\n", logBuf); 681c1b0f19Sopenharmony_ci break; 691c1b0f19Sopenharmony_ci default: 701c1b0f19Sopenharmony_ci break; 711c1b0f19Sopenharmony_ci } 721c1b0f19Sopenharmony_ci#endif 731c1b0f19Sopenharmony_ci} 741c1b0f19Sopenharmony_ci 751c1b0f19Sopenharmony_civoid DHLog(DHLogLevel logLevel, const char *fmt, ...) 761c1b0f19Sopenharmony_ci{ 771c1b0f19Sopenharmony_ci char logBuf[LOG_MAX_LEN] = {0}; 781c1b0f19Sopenharmony_ci va_list arg; 791c1b0f19Sopenharmony_ci 801c1b0f19Sopenharmony_ci (void)memset_s(&arg, sizeof(va_list), 0, sizeof(va_list)); 811c1b0f19Sopenharmony_ci va_start(arg, fmt); 821c1b0f19Sopenharmony_ci int32_t ret = vsprintf_s(logBuf, sizeof(logBuf), fmt, arg); 831c1b0f19Sopenharmony_ci va_end(arg); 841c1b0f19Sopenharmony_ci if (ret < 0) { 851c1b0f19Sopenharmony_ci DHLogOut(logLevel, "DH log length error."); 861c1b0f19Sopenharmony_ci return; 871c1b0f19Sopenharmony_ci } 881c1b0f19Sopenharmony_ci DHLogOut(logLevel, logBuf); 891c1b0f19Sopenharmony_ci} 901c1b0f19Sopenharmony_ci} // namespace DistributedHardware 911c1b0f19Sopenharmony_ci} // namespace OHOS 92