| // Copyright 2016 The Fuchsia Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #ifndef LIB_SYSLOG_CPP_LOG_SETTINGS_H_ | 
 | #define LIB_SYSLOG_CPP_LOG_SETTINGS_H_ | 
 |  | 
 | #include <lib/syslog/cpp/log_level.h> | 
 |  | 
 | #include <string> | 
 |  | 
 | namespace syslog { | 
 |  | 
 | // Settings which control the behavior of logging. | 
 | struct LogSettings { | 
 |   // The minimum logging level. | 
 |   // Anything at or above this level will be logged (if applicable). | 
 |   // Anything below this level will be silently ignored. | 
 |   // | 
 |   // The log level defaults to LOG_INFO. | 
 |   // | 
 |   // Log messages for FX_VLOGS(x) (from macros.h) log verbosities in | 
 |   // the range between INFO and DEBUG | 
 |   LogSeverity min_log_level = DefaultLogLevel; | 
 |  | 
 |   // The name of a file to which the log should be written. | 
 |   // When non-empty, the previous log output is closed and logging is | 
 |   // redirected to the specified file.  It is not possible to revert to | 
 |   // the previous log output through this interface. | 
 |   std::string log_file; | 
 | }; | 
 |  | 
 | // Sets the active log settings for the current process. | 
 | void SetLogSettings(const LogSettings& settings); | 
 |  | 
 | // Sets the active log settings and tags for the current process. |tags| is not | 
 | // used on host. | 
 | void SetLogSettings(const LogSettings& settings, const std::initializer_list<std::string>& tags); | 
 |  | 
 | // Sets the log tags without modifying the settings. This is ignored on host. | 
 | void SetTags(const std::initializer_list<std::string>& tags); | 
 |  | 
 | // Gets the minimum log level for the current process. Never returns a value | 
 | // higher than LOG_FATAL. | 
 | LogSeverity GetMinLogLevel(); | 
 |  | 
 | }  // namespace syslog | 
 |  | 
 | #endif  // LIB_SYSLOG_CPP_LOG_SETTINGS_H_ |