1 // Copyright (c) 2012 The Chromium OS Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef LIBBRILLO_BRILLO_SYSLOG_LOGGING_H_ 6 #define LIBBRILLO_BRILLO_SYSLOG_LOGGING_H_ 7 8 #include <string> 9 10 #include <brillo/brillo_export.h> 11 12 namespace brillo { 13 14 enum InitFlags { 15 kLogToSyslog = 1, 16 kLogToStderr = 2, 17 kLogHeader = 4, 18 }; 19 20 // Initialize logging subsystem. |init_flags| is a bitfield, with bits defined 21 // in InitFlags above. 22 BRILLO_EXPORT void InitLog(int init_flags); 23 // Gets the current logging flags. 24 BRILLO_EXPORT int GetLogFlags(); 25 // Sets the current logging flags. 26 BRILLO_EXPORT void SetLogFlags(int log_flags); 27 // Convenience function for configuring syslog via openlog. Users 28 // could call openlog directly except for naming collisions between 29 // base/logging.h and syslog.h. Similarly users cannot pass the 30 // normal parameters so we pick a representative set. |log_pid| 31 // causes pid to be logged with |ident|. 32 BRILLO_EXPORT void OpenLog(const char* ident, bool log_pid); 33 // Start accumulating the logs to a string. This is inefficient, so 34 // do not set to true if large numbers of log messages are coming. 35 // Accumulated logs are only ever cleared when the clear function ings 36 // called. 37 BRILLO_EXPORT void LogToString(bool enabled); 38 // Get the accumulated logs as a string. 39 BRILLO_EXPORT std::string GetLog(); 40 // Clear the accumulated logs. 41 BRILLO_EXPORT void ClearLog(); 42 // Returns true if the accumulated log contains the given string. Useful 43 // for testing. 44 BRILLO_EXPORT bool FindLog(const char* string); 45 46 } // namespace brillo 47 48 #endif // LIBBRILLO_BRILLO_SYSLOG_LOGGING_H_ 49