/*
* Copyright (c) 2020 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef HIVIEWDFX_HILOG_CPP_H
#define HIVIEWDFX_HILOG_CPP_H
#include "hiview_log.h"
#ifdef __cplusplus
namespace OHOS {
namespace HiviewDFX {
struct HiLogLabel {
LogType type;
unsigned int domain;
const char *tag;
};
class HiLog final {
public:
/**
* @brief Outputs debug logs.
*
* @param label Indicates the log label.
* @param fmt Indicates the format string, which is an enhancement of a printf format string and supports the
* privacy identifier. Specifically, {public} or {private} is added between the % character and the format specifier
* in each parameter. \n
* @param... Indicates a list of parameters. The number and type of parameters must map onto the format specifiers
* in the format string.
* @return Returns 0 or a larger value if the operation is successful; returns a value smaller than 0
* otherwise.
* @since 1.1
* @version 1.0
*/
static int Debug(const HiLogLabel &label, const char *fmt, ...) __attribute__((__format__(printf, 2, 3)));
/**
* @brief Outputs informational logs.
*
* @param label Indicates the log label.
* @param fmt Indicates the format string, which is an enhancement of a printf format string and supports the
* privacy identifier. Specifically, {public} or {private} is added between the % character and the format specifier
* in each parameter. \n
* @param... Indicates a list of parameters. The number and type of parameters must map onto the format specifiers
* in the format string.
* @return Returns 0 or a larger value if the operation is successful; returns a value smaller than 0
* otherwise.
* @since 1.1
* @version 1.0
*/
static int Info(const HiLogLabel &label, const char *fmt, ...) __attribute__((__format__(printf, 2, 3)));
/**
* @brief Outputs warning logs.
*
* @param label Indicates the log label.
* @param fmt Indicates the format string, which is an enhancement of a printf format string and supports the
* privacy identifier. Specifically, {public} or {private} is added between the % character and the format specifier
* in each parameter. \n
* @param... Indicates a list of parameters. The number and type of parameters must map onto the format specifiers
* in the format string.
* @return Returns 0 or a larger value if the operation is successful; returns a value smaller than 0
* otherwise.
* @since 1.1
* @version 1.0
*/
static int Warn(const HiLogLabel &label, const char *fmt, ...) __attribute__((__format__(printf, 2, 3)));
/**
* @brief Outputs error logs.
*
* @param label Indicates the log label.
* @param fmt Indicates the format string, which is an enhancement of a printf format string and supports the
* privacy identifier. Specifically, {public} or {private} is added between the % character and the format specifier
* in each parameter. \n
* @param... Indicates a list of parameters. The number and type of parameters must map onto the format specifiers
* in the format string.
* @return Returns 0 or a larger value if the operation is successful; returns a value smaller than 0
* otherwise.
* @since 1.1
* @version 1.0
*/
static int Error(const HiLogLabel &label, const char *fmt, ...) __attribute__((__format__(printf, 2, 3)));
/**
* @brief Outputs fatal logs.
*
* @param label Indicates the log label.
* @param fmt Indicates the format string, which is an enhancement of a printf format string and supports the
* privacy identifier. Specifically, {public} or {private} is added between the % character and the format specifier
* in each parameter. \n
* @param... Indicates a list of parameters. The number and type of parameters must map onto the format specifiers
* in the format string.
* @return Returns 0 or a larger value if the operation is successful; returns a value smaller than 0
* otherwise.
* @since 1.1
* @version 1.0
*/
static int Fatal(const HiLogLabel &label, const char *fmt, ...) __attribute__((__format__(printf, 2, 3)));
};
} // namespace HiviewDFX
} // namespace OHOS
#endif // __cplusplus
#endif // HIVIEWDFX_HILOG_CPP_H