LiteCore
Couchbase Lite cross-platform core implementation
Loading...
Searching...
No Matches
c4Log.h File Reference
#include "c4Compat.h"
#include "c4Error.h"
#include "fleece/FLSlice.h"
#include <stdarg.h>

Go to the source code of this file.

Data Structures

struct  C4LogFileOptions
 Configuration for file-based logging. More...
 

Macros

#define C4LogToAt(DOMAIN, LEVEL, FMT, ...)
 
#define C4Debug(FMT, ...)   C4LogToAt(kC4DefaultLog, kC4LogDebug, FMT, ##__VA_ARGS__)
 
#define C4Log(FMT, ...)   C4LogToAt(kC4DefaultLog, kC4LogInfo, FMT, ##__VA_ARGS__)
 
#define C4LogVerbose(FMT, ...)   C4LogToAt(kC4DefaultLog, kC4LogVerbose, FMT, ##__VA_ARGS__)
 
#define C4Warn(FMT, ...)   C4LogToAt(kC4DefaultLog, kC4LogWarning, FMT, ##__VA_ARGS__)
 
#define C4WarnError(FMT, ...)   C4LogToAt(kC4DefaultLog, kC4LogError, FMT, ##__VA_ARGS__)
 

Typedefs

typedef struct c4LogDomain * C4LogDomain
 Reference to a log domain: a specific source of logs that can be enabled or disabled.
 
typedef void(* C4LogCallback) (C4LogDomain, C4LogLevel, const char *fmt, va_list args)
 A logging callback that the application can register.
 

Enumerations

enum  C4LogLevel : int8_t {
  kC4LogDebug , kC4LogVerbose , kC4LogInfo , kC4LogWarning ,
  kC4LogError , kC4LogNone
}
 

Functions

NODISCARD CBL_CORE_API bool c4log_writeToBinaryFile (C4LogFileOptions options, C4Error *error)
 Causes log messages to be written to a file, overwriting any previous contents.
 
CBL_CORE_API FLStringResult c4log_binaryFilePath (void)
 Returns the filesystem path of the directory where log files are kept.
 
CBL_CORE_API void c4log_flushLogFiles (void)
 Ensures all log messages have been written to the current log files.
 
CBL_CORE_API C4LogLevel c4log_binaryFileLevel (void)
 Returns the minimum level of log messages to be written to the log file, regardless of what level individual log domains are set to.
 
CBL_CORE_API void c4log_setBinaryFileLevel (C4LogLevel level)
 Sets the minimum level of log messages to be written to the log file.
 
CBL_CORE_API void c4log_writeToCallback (C4LogLevel level, C4LogCallback callback, bool preformatted)
 Registers (or unregisters) a log callback, and sets the minimum log level to report.
 
CBL_CORE_API C4LogCallback c4log_getCallback (void)
 Returns the current logging callback, or the default one if none has been set.
 
CBL_CORE_API C4LogLevel c4log_callbackLevel (void)
 Returns the minimum level of log messages to be reported via callback, regardless of what level individual log domains are set to.
 
CBL_CORE_API void c4log_setCallbackLevel (C4LogLevel level)
 Sets the minimum level of log messages to be reported via callback.
 
CBL_CORE_API C4LogDomain c4log_getDomain (const char *name, bool create)
 Looks up a named log domain.
 
CBL_CORE_API const char * c4log_getDomainName (C4LogDomain)
 Returns the name of a log domain.
 
CBL_CORE_API C4LogLevel c4log_getLevel (C4LogDomain)
 Returns the current log level of a domain, the minimum level of message it will log.
 
CBL_CORE_API bool c4log_willLog (C4LogDomain, C4LogLevel)
 Returns true if logging to this domain at this level will have an effect.
 
CBL_CORE_API void c4log_setLevel (C4LogDomain c4Domain, C4LogLevel level)
 Changes the level of the given log domain.
 
CBL_CORE_API void c4log_warnOnErrors (bool)
 If set to true, LiteCore will log a warning of the form "LiteCore throwing %s error %d: %s" just before throwing an internal exception.
 
CBL_CORE_API bool c4log_getWarnOnErrors (void)
 Returns true if warn-on-errors is on; see c4log_warnOnErrors.
 
CBL_CORE_API void c4log_enableFatalExceptionBacktrace (void)
 Registers a handler with the C++ runtime that will log a backtrace when an uncaught C++ exception occurs, just before the process aborts.
 
CBL_CORE_API void c4log (C4LogDomain domain, C4LogLevel level, const char *fmt,...) __printflike(3
 Logs a message/warning/error to a specific domain, if its current level is less than or equal to the given level.
 
CBL_CORE_API void CBL_CORE_API void c4vlog (C4LogDomain domain, C4LogLevel level, const char *fmt, va_list args) __printflike(3
 Same as c4log, for use in calling functions that already take variable args.
 
CBL_CORE_API void CBL_CORE_API void CBL_CORE_API void c4slog (C4LogDomain domain, C4LogLevel level, FLString msg)
 Same as c4log, except it accepts preformatted messages as FLSlices.
 

Variables

CBL_CORE_API const C4LogDomain kC4DefaultLog
 Subsystems that produce logs.
 
CBL_CORE_API const C4LogDomain kC4DatabaseLog
 Log domain for database operations.
 
CBL_CORE_API const C4LogDomain kC4QueryLog
 Log domain for query operations.
 
CBL_CORE_API const C4LogDomain kC4SyncLog
 Log domain for replication operations.
 
CBL_CORE_API const C4LogDomain kC4WebSocketLog
 Log domain for WebSocket operations.