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