flutter_flutter/fml/log_settings.cc
Chris Bracken 16b900b63e
Prefer C++ standard headers to their C counterpart (#21091)
We currently use a mix of C standard includes (e.g. limits.h) and their
C++ variants (e.g. climits). This migrates to a consistent style for all
cases where the C++ variants are acceptable, but leaves the C
equivalents in place where they are required, such as in the embedder
API and other headers that may be used from C.
2020-09-11 17:10:00 -07:00

47 lines
1.0 KiB
C++

// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "flutter/fml/log_settings.h"
#include <fcntl.h>
#include <algorithm>
#include <cstring>
#include <iostream>
#include "flutter/fml/logging.h"
namespace fml {
namespace state {
// Defined in log_settings_state.cc.
extern LogSettings g_log_settings;
} // namespace state
void SetLogSettings(const LogSettings& settings) {
// Validate the new settings as we set them.
state::g_log_settings.min_log_level =
std::min(LOG_FATAL, settings.min_log_level);
}
LogSettings GetLogSettings() {
return state::g_log_settings;
}
int GetMinLogLevel() {
return std::min(state::g_log_settings.min_log_level, LOG_FATAL);
}
ScopedSetLogSettings::ScopedSetLogSettings(const LogSettings& settings) {
old_settings_ = GetLogSettings();
SetLogSettings(settings);
}
ScopedSetLogSettings::~ScopedSetLogSettings() {
SetLogSettings(old_settings_);
}
} // namespace fml