|  | /* | 
|  | * Copyright (c) 2022 Converge | 
|  | * Copyright (c) 2023 Nobleo Technology | 
|  | * | 
|  | * SPDX-License-Identifier: Apache-2.0 | 
|  | */ | 
|  | #include <zephyr/logging/log.h> | 
|  | #include <zephyr/logging/log_output.h> | 
|  | #include <zephyr/logging/log_output_custom.h> | 
|  |  | 
|  | static log_format_func_t log_custom_format_func; | 
|  |  | 
|  | void log_custom_output_msg_process(const struct log_output *output, struct log_msg *msg, | 
|  | uint32_t flags) | 
|  | { | 
|  | if (log_custom_format_func) { | 
|  | log_custom_format_func(output, msg, flags); | 
|  | } | 
|  | } | 
|  |  | 
|  | void log_custom_output_msg_set(log_format_func_t format) | 
|  | { | 
|  | log_custom_format_func = format; | 
|  | } | 
|  |  | 
|  | static log_timestamp_format_func_t log_timestamp_format_func; | 
|  |  | 
|  | int log_custom_timestamp_print(const struct log_output *output, const log_timestamp_t timestamp, | 
|  | const log_timestamp_printer_t printer) | 
|  | { | 
|  | __ASSERT(log_timestamp_format_func != NULL, "custom timestamp format function not set"); | 
|  |  | 
|  | if (log_timestamp_format_func) { | 
|  | return log_timestamp_format_func(output, timestamp, printer); | 
|  | } | 
|  |  | 
|  | return 0; | 
|  | } | 
|  |  | 
|  | void log_custom_timestamp_set(log_timestamp_format_func_t format) | 
|  | { | 
|  | log_timestamp_format_func = format; | 
|  | } |