pw_log_basic#
Stable
pw_log_basic
is a pw_log
backend that sends logs over pw_sys_io
by
default. The destination of pw_sys_io
depends on the pw_sys_io
backend
in use. This is controlled by the dir_pw_sys_io_backend
variable in a
target’s target_config.gni
.
Interface extension#
The log output may be changed from pw_sys_io
to an arbitrary function by
calling pw::log_basic::SetOutput
.
-
void SetOutput(void (*log_output)(std::string_view))#
Set the log output function, which defaults
pw_sys_io::WriteLine
. This function is called with each formatted log message.
Note that pw::log_baisc::SetOutput
is not part of the pw_log
interface. As a result, in the Bazel build, any build target that calls this
function must:
Explicitly list
@pigweed//pw_log_basic:extension
in itsdeps
. This avoids a Layering check violation.Mark itself
target_compatible_with
only configurations for which the config_setting@pigweed//pw_log_basic:is_active_backend
is true. This informs the build system that the target is only compatible with platforms that set the pw_log backend topw_log_basic
.
See //pw_hdlc:hdlc_sys_io_system_server
for an example of such a target.
Implementation#
This module employs an internal buffer for formatting log strings, whose size
can be configured via the PW_LOG_BASIC_ENTRY_SIZE
macro which defaults to
150 bytes. Any final log statements that are larger than
PW_LOG_BASIC_ENTRY_SIZE - 1
bytes (one byte used for a null terminator) will
be truncated.
Note
The documentation for this module is currently incomplete.