13#ifndef ZEPHYR_INCLUDE_LOGGING_LOG_OUTPUT_H_
14#define ZEPHYR_INCLUDE_LOGGING_LOG_OUTPUT_H_
40#define LOG_OUTPUT_FLAG_COLORS BIT(0)
43#define LOG_OUTPUT_FLAG_TIMESTAMP BIT(1)
46#define LOG_OUTPUT_FLAG_FORMAT_TIMESTAMP BIT(2)
49#define LOG_OUTPUT_FLAG_LEVEL BIT(3)
52#define LOG_OUTPUT_FLAG_CRLF_NONE BIT(4)
55#define LOG_OUTPUT_FLAG_CRLF_LFONLY BIT(5)
59#define LOG_OUTPUT_FLAG_FORMAT_SYSLOG BIT(6)
62#define LOG_OUTPUT_FLAG_THREAD BIT(7)
65#define LOG_OUTPUT_FLAG_SKIP_SOURCE BIT(8)
68#define LOG_OUTPUT_FLAG_CORE BIT(9)
81#define LOG_OUTPUT_TEXT 0
84#define LOG_OUTPUT_SYST 1
87#define LOG_OUTPUT_DICT 2
90#define LOG_OUTPUT_CUSTOM 3
114 const char *hostname;
150#define LOG_OUTPUT_DEFINE(_name, _func, _buf, _size) \
151 static struct log_output_control_block _name##_control_block; \
152 static const struct log_output _name = { \
154 .control_block = &_name##_control_block, \
230 processed = outf(buf, len, ctx);
264 const char *hostname)
Header file for the Atomic operations API.
long atomic_t
Atomic integer variable.
Definition atomic_types.h:31
uint32_t log_timestamp_t
Timestamp value associated with a log message.
Definition log_msg.h:54
void log_output_dropped_process(const struct log_output *output, uint32_t cnt)
Process dropped messages indication.
void(* log_format_func_t)(const struct log_output *output, struct log_msg *msg, uint32_t flags)
Typedef of the function pointer table "format_table".
Definition log_output.h:135
static void log_output_write(log_output_func_t outf, uint8_t *buf, size_t len, void *ctx)
Write to the output buffer.
Definition log_output.h:225
static void log_output_hostname_set(const struct log_output *output, const char *hostname)
Function for setting hostname of this device.
Definition log_output.h:263
void log_output_timestamp_freq_set(uint32_t freq)
Set timestamp frequency.
void log_output_process(const struct log_output *log_output, log_timestamp_t timestamp, const char *domain, const char *source, k_tid_t tid, uint8_t core_id, uint8_t level, const uint8_t *package, const uint8_t *data, size_t data_len, uint32_t flags)
Process input data to a readable string.
void log_output_msg_process(const struct log_output *log_output, struct log_msg *msg, uint32_t flags)
Process log messages v2 to readable strings.
uint64_t log_output_timestamp_to_us(log_timestamp_t timestamp)
Convert timestamp of the message to us.
static void log_output_ctx_set(const struct log_output *output, void *ctx)
Function for setting user context passed to the output function.
Definition log_output.h:252
log_format_func_t log_format_func_t_get(uint32_t log_type)
Declaration of the get routine for function pointer table format_table.
void log_output_msg_syst_process(const struct log_output *log_output, struct log_msg *msg, uint32_t flags)
Process log messages v2 to SYS-T format.
static void log_output_flush(const struct log_output *output)
Flush output buffer.
Definition log_output.h:240
int(* log_output_func_t)(uint8_t *buf, size_t size, void *ctx)
Prototype of the function processing output data.
Definition log_output.h:107
Header file for log messages.
flags
Definition parser.h:97
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT64_TYPE__ uint64_t
Definition stdint.h:91
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
Run-time control block for a Log output instance.
Definition log_output.h:110
Log output instance.
Definition log_output.h:119
struct log_output_control_block * control_block
Run-time control block.
Definition log_output.h:121
log_output_func_t func
Function called to write formatted output.
Definition log_output.h:120
uint8_t * buf
Buffer holding formatted output before it is written.
Definition log_output.h:122
size_t size
Size of log_output::buf, in bytes.
Definition log_output.h:123
struct k_thread * k_tid_t
Definition thread.h:383