Photon 1.0.0
Loading...
Searching...
No Matches
basic_file_sink.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
10
11#include <mutex>
12#include <string>
13
14namespace spdlog
15{
16 namespace sinks
17 {
18 /*
19 * Trivial file sink with single file as target
20 */
21 template <typename Mutex>
22 class basic_file_sink final : public base_sink<Mutex>
23 {
24 public:
25 explicit basic_file_sink(const filename_t& filename, bool truncate = false, const file_event_handlers& event_handlers = {});
26 const filename_t& filename() const;
27
28 protected:
29 void sink_it_(const details::log_msg& msg) override;
30 void flush_() override;
31
32 private:
34 };
35
38
39 } // namespace sinks
40
41 //
42 // factory functions
43 //
44 template <typename Factory = spdlog::synchronous_factory>
45 inline std::shared_ptr<logger> basic_logger_mt(
46 const std::string& logger_name, const filename_t& filename, bool truncate = false, const file_event_handlers& event_handlers = {})
47 {
48 return Factory::template create<sinks::basic_file_sink_mt>(logger_name, filename, truncate, event_handlers);
49 }
50
51 template <typename Factory = spdlog::synchronous_factory>
52 inline std::shared_ptr<logger> basic_logger_st(
53 const std::string& logger_name, const filename_t& filename, bool truncate = false, const file_event_handlers& event_handlers = {})
54 {
55 return Factory::template create<sinks::basic_file_sink_st>(logger_name, filename, truncate, event_handlers);
56 }
57
58} // namespace spdlog
59
60#ifdef SPDLOG_HEADER_ONLY
61#include "basic_file_sink-inl.h"
62#endif
Definition file_helper.h:19
Definition base_sink.h:22
Definition basic_file_sink.h:23
details::file_helper file_helper_
Definition basic_file_sink.h:33
const filename_t & filename() const
Definition basic_file_sink-inl.h:26
void sink_it_(const details::log_msg &msg) override
Definition basic_file_sink-inl.h:32
void flush_() override
Definition basic_file_sink-inl.h:40
basic_file_sink< std::mutex > basic_file_sink_mt
Definition basic_file_sink.h:36
basic_file_sink< details::null_mutex > basic_file_sink_st
Definition basic_file_sink.h:37
Definition async.h:26
std::shared_ptr< logger > basic_logger_mt(const std::string &logger_name, const filename_t &filename, bool truncate=false, const file_event_handlers &event_handlers={})
Definition basic_file_sink.h:45
std::shared_ptr< logger > basic_logger_st(const std::string &logger_name, const filename_t &filename, bool truncate=false, const file_event_handlers &event_handlers={})
Definition basic_file_sink.h:52
std::string filename_t
Definition common.h:131
Definition log_msg.h:14
Definition common.h:329