* Copyright (c) 2026 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 UPDATE_DYNAMIC_LOG_H
#define UPDATE_DYNAMIC_LOG_H
#include "log.h"
#include "macros_updater.h"
namespace Updater {
#define LOGDYN(format, ...) Updater::Logger(Updater::GetDynamicLogLevel(), (UPDATER_LOG_FILE_NAME), (__LINE__), \
(format), ##__VA_ARGS__)
#define LOGDYN_SEN(format, ...) Updater::LoggerSensitiveDynamic((UPDATER_LOG_FILE_NAME), (__LINE__), \
(format), ##__VA_ARGS__)
void SetDynamicLogLevel(int level);
int GetDynamicLogLevel();
class DynamicLoggerGuard final {
DISALLOW_COPY_MOVE(DynamicLoggerGuard);
public:
explicit DynamicLoggerGuard(int targetLevel);
DynamicLoggerGuard(int targetLevel, bool silent);
~DynamicLoggerGuard();
private:
int targetLevel_{INFO};
int oldLevel_{INFO};
bool silent_{false};
};
void LoggerSensitiveDynamic(const char* fileName, int32_t line, const char* format, ...);
}
#endif