spdlog
Loading...
Searching...
No Matches
include
spdlog
sinks
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
6
#include <
spdlog/details/file_helper.h
>
7
#include <
spdlog/details/null_mutex.h
>
8
#include <
spdlog/sinks/base_sink.h
>
9
#include <
spdlog/details/synchronous_factory.h
>
10
11
#include <
mutex
>
12
#include <
string
>
13
14
namespace
spdlog
{
15
namespace
sinks {
16
/*
17
* Trivial file sink with single file as target
18
*/
19
template
<
typename
Mutex>
20
class
basic_file_sink
final :
public
base_sink
<Mutex>
21
{
22
public
:
23
explicit
basic_file_sink
(
const
filename_t
&
filename
,
bool
truncate =
false
);
24
const
filename_t
&
filename
()
const
;
25
26
protected
:
27
void
sink_it_
(
const
details::log_msg
&msg)
override
;
28
void
flush_
()
override
;
29
30
private
:
31
details::file_helper
file_helper_
;
32
};
33
34
using
basic_file_sink_mt
=
basic_file_sink<std::mutex>
;
35
using
basic_file_sink_st
=
basic_file_sink<details::null_mutex>
;
36
37
}
// namespace sinks
38
39
//
40
// factory functions
41
//
42
template
<
typename
Factory = spdlog::synchronous_factory>
43
inline
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
48
template
<
typename
Factory = spdlog::synchronous_factory>
49
inline
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
base_sink.h
basic_file_sink-inl.h
std::string
spdlog::details::file_helper
Definition
file_helper.h:17
spdlog::sinks::base_sink
Definition
base_sink.h:20
spdlog::sinks::basic_file_sink
Definition
basic_file_sink.h:21
spdlog::sinks::basic_file_sink::file_helper_
details::file_helper file_helper_
Definition
basic_file_sink.h:31
spdlog::sinks::basic_file_sink::filename
const filename_t & filename() const
Definition
basic_file_sink-inl.h:23
spdlog::sinks::basic_file_sink::sink_it_
void sink_it_(const details::log_msg &msg) override
Definition
basic_file_sink-inl.h:29
spdlog::sinks::basic_file_sink::flush_
void flush_() override
Definition
basic_file_sink-inl.h:37
file_helper.h
mutex
spdlog
Definition
async.h:25
spdlog::basic_logger_st
std::shared_ptr< logger > basic_logger_st(const std::string &logger_name, const filename_t &filename, bool truncate=false)
Definition
basic_file_sink.h:49
spdlog::basic_logger_mt
std::shared_ptr< logger > basic_logger_mt(const std::string &logger_name, const filename_t &filename, bool truncate=false)
Definition
basic_file_sink.h:43
null_mutex.h
std::shared_ptr
string
spdlog::details::log_msg
Definition
log_msg.h:12
synchronous_factory.h
Generated by
1.9.8