LCOV - code coverage report
Current view: top level - zephyr/logging - log_output_custom.h Hit Total Coverage
Test: new.info Lines: 6 7 85.7 %
Date: 2024-12-22 00:14:23

          Line data    Source code
       1           0 : /*
       2             :  * Copyright (c) 2021 Converge
       3             :  * Copyright (c) 2023 Nobleo Technology
       4             :  *
       5             :  * SPDX-License-Identifier: Apache-2.0
       6             :  */
       7             : #ifndef ZEPHYR_INCLUDE_LOGGING_LOG_OUTPUT_CUSTOM_H_
       8             : #define ZEPHYR_INCLUDE_LOGGING_LOG_OUTPUT_CUSTOM_H_
       9             : 
      10             : #include <zephyr/logging/log_output.h>
      11             : 
      12             : #ifdef __cplusplus
      13             : extern "C" {
      14             : #endif
      15             : 
      16             : /** @brief Custom logging output formatting.
      17             :  * @ingroup log_output
      18             :  * @{
      19             :  */
      20             : 
      21             : /** @brief Process log messages from an external output function set with
      22             :  * log_custom_output_msg_set
      23             :  *
      24             :  * Function is using provided context with the buffer and output function to
      25             :  * process formatted string and output the data.
      26             :  *
      27             :  * @param log_output Pointer to the log output instance.
      28             :  * @param msg Log message.
      29             :  * @param flags Optional flags.
      30             :  */
      31           1 : void log_custom_output_msg_process(const struct log_output *log_output,
      32             :                                  struct log_msg *msg, uint32_t flags);
      33             : 
      34             : /** @brief Set the formatting log function that will be applied with LOG_OUTPUT_CUSTOM
      35             :  *
      36             :  * @param format Pointer to the external formatter function
      37             :  */
      38           1 : void log_custom_output_msg_set(log_format_func_t format);
      39             : 
      40             : 
      41             : /**
      42             :  * @brief Prototype of a printer function that can print the given timestamp
      43             :  * into a specific logger instance.
      44             :  *
      45             :  * Example usage:
      46             :  * @code{.c}
      47             :  * log_timestamp_printer_t *printer = ...;
      48             :  * printer(log_instance, "%02u:%02u", hours, minutes);
      49             :  * @endcode
      50             :  *
      51             :  * @param output The logger instance to write to
      52             :  * @param fmt The format string
      53             :  * @param ... optional arguments for the format string
      54             :  */
      55           1 : typedef int (*log_timestamp_printer_t)(const struct log_output *output, const char *fmt, ...);
      56             : 
      57             : /**
      58             :  * @brief Prototype of the function that will apply custom formatting
      59             :  * to a timestamp when LOG_OUTPUT_FORMAT_CUSTOM_TIMESTAMP
      60             :  *
      61             :  * Example function:
      62             :  * @code{.c}
      63             :  * int custom_timestamp_formatter(const struct log_output* output,
      64             :  *                                const log_timestamp_t timestamp,
      65             :  *                                const log_timestamp_printer_t printer) {
      66             :  *     return printer(output, "%d ", timestamp);
      67             :  * }
      68             :  * @endcode
      69             :  *
      70             :  * @param output The logger instance to write to
      71             :  * @param timestamp
      72             :  * @param printer The printing function to use when formatting the timestamp.
      73             :  */
      74           1 : typedef int (*log_timestamp_format_func_t)(const struct log_output *output,
      75             :                                            const log_timestamp_t timestamp,
      76             :                                            const log_timestamp_printer_t printer);
      77             : 
      78             : /** @brief Format the timestamp with a external function.
      79             :  *
      80             :  * Function is using provided context with the buffer and output function to
      81             :  * process formatted string and output the data.
      82             :  *
      83             :  * @param output Pointer to the log output instance.
      84             :  * @param timestamp
      85             :  * @param printer The printing function to use when formatting the timestamp.
      86             :  */
      87           1 : int log_custom_timestamp_print(const struct log_output *output, const log_timestamp_t timestamp,
      88             :                               const log_timestamp_printer_t printer);
      89             : 
      90             : /** @brief Set the timestamp formatting function that will be applied
      91             :  * when LOG_OUTPUT_FORMAT_CUSTOM_TIMESTAMP
      92             :  *
      93             :  * @param format Pointer to the external formatter function
      94             :  */
      95           1 : void log_custom_timestamp_set(log_timestamp_format_func_t format);
      96             : 
      97             : /**
      98             :  * @}
      99             :  */
     100             : 
     101             : #ifdef __cplusplus
     102             : }
     103             : #endif
     104             : 
     105             : #endif /* ZEPHYR_INCLUDE_LOGGING_LOG_OUTPUT_CUSTOM_H_ */

Generated by: LCOV version 1.14