// Copyright (c) 2012 The Chromium OS 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 LIBBRILLO_BRILLO_SYSLOG_LOGGING_H_ #define LIBBRILLO_BRILLO_SYSLOG_LOGGING_H_ #include <string> #include <brillo/brillo_export.h> namespace brillo { enum InitFlags { // Always log to syslog. kLogToSyslog = 1, // Always log to stderr. kLogToStderr = 2, // Include message header in log lines. kLogHeader = 4, // Log to stderr if stdin is a tty (e.g. command line). kLogToStderrIfTty = 8, }; // Initialize logging subsystem. |init_flags| is a bitfield, with bits defined // in InitFlags above. BRILLO_EXPORT void InitLog(int init_flags); // Gets the current logging flags. BRILLO_EXPORT int GetLogFlags(); // Sets the current logging flags. BRILLO_EXPORT void SetLogFlags(int log_flags); // Convenience function for configuring syslog via openlog. Users // could call openlog directly except for naming collisions between // base/logging.h and syslog.h. Similarly users cannot pass the // normal parameters so we pick a representative set. |log_pid| // causes pid to be logged with |ident|. BRILLO_EXPORT void OpenLog(const char* ident, bool log_pid); // Start accumulating the logs to a string. This is inefficient, so // do not set to true if large numbers of log messages are coming. // Accumulated logs are only ever cleared when the clear function ings // called. BRILLO_EXPORT void LogToString(bool enabled); // Get the accumulated logs as a string. BRILLO_EXPORT std::string GetLog(); // Clear the accumulated logs. BRILLO_EXPORT void ClearLog(); // Returns true if the accumulated log contains the given string. Useful // for testing. BRILLO_EXPORT bool FindLog(const char* string); } // namespace brillo #endif // LIBBRILLO_BRILLO_SYSLOG_LOGGING_H_