blob: 6cf3a491a2a75ef5bd59dbd6af6d3598b6cc2c1f [file] [log] [blame] [view] [edit]
Project: /youtube/cobalt/_project.yaml
Book: /youtube/cobalt/_book.yaml
# Starboard Module Reference: `log.h`
Defines core debug logging functions.
## Enums
### SbLogPriority
The priority at which a message should be logged. The platform may be configured
to filter logs by priority, or render them differently.
#### Values
* `kSbLogPriorityUnknown`
* `kSbLogPriorityInfo`
* `kSbLogPriorityWarning`
* `kSbLogPriorityError`
* `kSbLogPriorityFatal`
## Functions
### SbLog
Writes `message` to the platform's debug output log. This method is thread-safe,
and responsible for ensuring that the output from multiple threads is not mixed.
`priority`: The SbLogPriority at which the message should be logged. Note that
passing `kSbLogPriorityFatal` does not terminate the program. Such a policy must
be enforced at the application level. In fact, `priority` may be completely
ignored on many platforms. `message`: The message to be logged. Must not be
NULL. No formatting is required to be done on the value, including newline
termination. That said, platforms can adjust the message to be more suitable for
their output method by wrapping the text, stripping unprintable characters, etc.
#### Declaration
```
void SbLog(SbLogPriority priority, const char *message)
```
### SbLogFlush
Flushes the log buffer on some platforms. This method is safe to call from
multiple threads.
#### Declaration
```
void SbLogFlush()
```
### SbLogFormat
A log output method that additionally performs a string format on the data being
logged.
#### Declaration
```
void SbLogFormat(const char *format, va_list args) SB_PRINTF_FORMAT(1
```
### SbLogFormatF
Inline wrapper of SbLogFormat that converts from ellipsis to va_args.
#### Declaration
```
void static void static void SbLogFormatF(const char *format,...) SB_PRINTF_FORMAT(1
```
### SbLogIsTty
Indicates whether the log output goes to a TTY or is being redirected.
#### Declaration
```
bool SbLogIsTty()
```
### SbLogRaw
A bare-bones log output method that is async-signal-safe, i.e. safe to call from
an asynchronous signal handler (e.g. a `SIGSEGV` handler). It should not do any
additional formatting.
`message`: The message to be logged. Must not be NULL.
#### Declaration
```
void SbLogRaw(const char *message)
```
### SbLogRawDumpStack
Dumps the stack of the current thread to the log in an async-signal-safe manner,
i.e. safe to call from an asynchronous signal handler (e.g. a `SIGSEGV`
handler). Does not include SbLogRawDumpStack itself.
`frames_to_skip`: The number of frames to skip from the top of the stack when
dumping the current thread to the log. This parameter lets you remove noise from
helper functions that might end up on top of every stack dump so that the stack
dump is just the relevant function stack where the problem occurred.
#### Declaration
```
void SbLogRawDumpStack(int frames_to_skip)
```
### SbLogRawFormat
A formatted log output method that is async-signal-safe, i.e. safe to call from
an asynchronous signal handler (e.g. a `SIGSEGV` handler).
#### Declaration
```
void SbLogRawFormat(const char *format, va_list args) SB_PRINTF_FORMAT(1
```
### SbLogRawFormatF
Inline wrapper of SbLogFormat to convert from ellipsis to va_args.
#### Declaration
```
void static void static void SbLogRawFormatF(const char *format,...) SB_PRINTF_FORMAT(1
```