Photon 1.0.0
Loading...
Searching...
No Matches
stdout_sinks.h
Go to the documentation of this file.
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
8#include <spdlog/sinks/sink.h>
9#include <cstdio>
10
11#ifdef _WIN32
13#endif
14
15namespace spdlog
16{
17
18 namespace sinks
19 {
20
21 template <typename ConsoleMutex>
22 class stdout_sink_base : public sink
23 {
24 public:
25 using mutex_t = typename ConsoleMutex::mutex_t;
26 explicit stdout_sink_base(FILE* file);
27 ~stdout_sink_base() override = default;
28
29 stdout_sink_base(const stdout_sink_base& other) = delete;
31
34
35 void log(const details::log_msg& msg) override;
36 void flush() override;
37 void set_pattern(const std::string& pattern) override;
38
39 void set_formatter(std::unique_ptr<spdlog::formatter> sink_formatter) override;
40
41 protected:
43 FILE* file_;
44 std::unique_ptr<spdlog::formatter> formatter_;
45#ifdef _WIN32
46 HANDLE handle_;
47#endif // WIN32
48 };
49
50 template <typename ConsoleMutex>
51 class stdout_sink : public stdout_sink_base<ConsoleMutex>
52 {
53 public:
55 };
56
57 template <typename ConsoleMutex>
58 class stderr_sink : public stdout_sink_base<ConsoleMutex>
59 {
60 public:
62 };
63
66
69
70 } // namespace sinks
71
72 // factory methods
73 template <typename Factory = spdlog::synchronous_factory>
74 std::shared_ptr<logger> stdout_logger_mt(const std::string& logger_name);
75
76 template <typename Factory = spdlog::synchronous_factory>
77 std::shared_ptr<logger> stdout_logger_st(const std::string& logger_name);
78
79 template <typename Factory = spdlog::synchronous_factory>
80 std::shared_ptr<logger> stderr_logger_mt(const std::string& logger_name);
81
82 template <typename Factory = spdlog::synchronous_factory>
83 std::shared_ptr<logger> stderr_logger_st(const std::string& logger_name);
84
85} // namespace spdlog
86
87#ifdef SPDLOG_HEADER_ONLY
88#include "stdout_sinks-inl.h"
89#endif
Definition sink.h:15
Definition stdout_sinks.h:59
stderr_sink()
Definition stdout_sinks-inl.h:110
Definition stdout_sinks.h:23
FILE * file_
Definition stdout_sinks.h:43
stdout_sink_base(stdout_sink_base &&other)=delete
void flush() override
Definition stdout_sinks-inl.h:81
stdout_sink_base & operator=(stdout_sink_base &&other)=delete
void log(const details::log_msg &msg) override
Definition stdout_sinks-inl.h:53
stdout_sink_base(const stdout_sink_base &other)=delete
void set_pattern(const std::string &pattern) override
Definition stdout_sinks-inl.h:88
mutex_t & mutex_
Definition stdout_sinks.h:42
stdout_sink_base & operator=(const stdout_sink_base &other)=delete
void set_formatter(std::unique_ptr< spdlog::formatter > sink_formatter) override
Definition stdout_sinks-inl.h:95
~stdout_sink_base() override=default
typename ConsoleMutex::mutex_t mutex_t
Definition stdout_sinks.h:25
std::unique_ptr< spdlog::formatter > formatter_
Definition stdout_sinks.h:44
Definition stdout_sinks.h:52
stdout_sink()
Definition stdout_sinks-inl.h:103
stdout_sink< details::console_nullmutex > stdout_sink_st
Definition stdout_sinks.h:65
stderr_sink< details::console_mutex > stderr_sink_mt
Definition stdout_sinks.h:67
stdout_sink< details::console_mutex > stdout_sink_mt
Definition stdout_sinks.h:64
stderr_sink< details::console_nullmutex > stderr_sink_st
Definition stdout_sinks.h:68
Definition async.h:26
SPDLOG_INLINE std::shared_ptr< logger > stdout_logger_mt(const std::string &logger_name)
Definition stdout_sinks-inl.h:119
SPDLOG_INLINE std::shared_ptr< logger > stderr_logger_st(const std::string &logger_name)
Definition stdout_sinks-inl.h:137
SPDLOG_INLINE std::shared_ptr< logger > stderr_logger_mt(const std::string &logger_name)
Definition stdout_sinks-inl.h:131
SPDLOG_INLINE std::shared_ptr< logger > stdout_logger_st(const std::string &logger_name)
Definition stdout_sinks-inl.h:125
Definition log_msg.h:14