1 #pragma once
2 
3 #include <phosphor-logging/lg2/level.hpp>
4 
5 #include <cstddef>
6 #include <source_location>
7 
8 namespace lg2::details
9 {
10 
11 /** Low-level function that actually performs the logging.
12  *
13  *  This is a variadic argument function (std::va_list) where the variadic
14  *  arguments are a set of 3: { header, flags, value }.
15  *
16  *  The argument set is finalized with a 'nullptr' valued header.
17  *
18  *  @param[in] level - The logging level to use.
19  *  @param[in] source_location - The original source location of the upper-level
20  *                               log call.
21  *  @param[in] char* - The primary message to log.
22  */
23 void do_log(level, const std::source_location&, const char*, ...);
24 
25 } // namespace lg2::details
26