1// Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2// Distributed under the MIT License (http://opensource.org/licenses/MIT)
3
4#pragma once
5
6#include <spdlog/common.h>
7#include <string>
8
9namespace spdlog {
10namespace details {
11struct SPDLOG_API log_msg {
12 log_msg() = default;
13 log_msg(log_clock::time_point log_time,
14 source_loc loc,
15 string_view_t logger_name,
16 level::level_enum lvl,
17 string_view_t msg);
18 log_msg(source_loc loc, string_view_t logger_name, level::level_enum lvl, string_view_t msg);
19 log_msg(string_view_t logger_name, level::level_enum lvl, string_view_t msg);
20 log_msg(const log_msg &other) = default;
21 log_msg &operator=(const log_msg &other) = default;
22
23 string_view_t logger_name;
24 level::level_enum level{level::off};
25 log_clock::time_point time;
26 size_t thread_id{0};
27
28 // wrapping the formatted text with color (updated by pattern_formatter).
29 mutable size_t color_range_start{0};
30 mutable size_t color_range_end{0};
31
32 source_loc source;
33 string_view_t payload;
34};
35} // namespace details
36} // namespace spdlog
37
38#ifdef SPDLOG_HEADER_ONLY
39 #include "log_msg-inl.h"
40#endif
41