| // Copyright 2012 The ChromiumOS Authors | |
| // 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_ |