xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
test
jtx
CaptureLogs.h
1
#pragma once
2
3
#include <xrpl/basics/Log.h>
4
#include <xrpl/beast/utility/Journal.h>
5
6
#include <
memory
>
7
#include <
mutex
>
8
#include <
sstream
>
9
#include <
string
>
10
11
namespace
xrpl::test
{
12
19
class
CaptureLogs
:
public
Logs
20
{
21
std::mutex
strmMutex_
;
22
std::stringstream
strm_
;
23
std::string
*
pResult_
;
24
28
class
CaptureSink
:
public
beast::Journal::Sink
29
{
30
std::mutex
&
strmMutex_
;
31
std::stringstream
&
strm_
;
32
33
public
:
34
CaptureSink
(
beast::Severity
threshold
,
std::mutex
& mutex,
std::stringstream
& strm)
35
:
beast
::Journal::
Sink
(
threshold
, false),
strmMutex_
(mutex),
strm_
(strm)
36
{
37
}
38
39
void
40
write
(
beast::Severity
level,
std::string
const
& text)
override
41
{
42
std::scoped_lock
const
lock(
strmMutex_
);
43
strm_
<< text;
44
}
45
46
void
47
writeAlways
(
beast::Severity
level,
std::string
const
& text)
override
48
{
49
std::scoped_lock
const
lock(
strmMutex_
);
50
strm_
<< text;
51
}
52
};
53
54
public
:
55
explicit
CaptureLogs
(
std::string
* pResult) :
Logs
(
beast
::
Severity
::Info),
pResult_
(pResult)
56
{
57
}
58
59
~CaptureLogs
()
override
60
{
61
*
pResult_
=
strm_
.str();
62
}
63
64
std::unique_ptr<beast::Journal::Sink>
65
makeSink
(
std::string
const
& partition,
beast::Severity
threshold
)
override
66
{
67
return
std::make_unique<CaptureSink>
(
threshold
,
strmMutex_
,
strm_
);
68
}
69
};
70
71
}
// namespace xrpl::test
std::string
std::stringstream
beast::Journal::Sink
Abstraction for the underlying message destination.
Definition
Journal.h:59
beast::Journal::Sink::threshold
virtual Severity threshold() const
Returns the minimum severity level this sink will report.
Definition
beast_Journal.cpp:96
beast::Journal::Sink::Sink
Sink(Sink const &sink)=default
xrpl::Logs::threshold
beast::Severity threshold() const
Definition
Log.cpp:143
xrpl::Logs::Logs
Logs(beast::Severity level)
Definition
Log.cpp:112
xrpl::test::CaptureLogs::CaptureSink::writeAlways
void writeAlways(beast::Severity level, std::string const &text) override
Bypass filter and write text to the sink at the specified severity.
Definition
CaptureLogs.h:47
xrpl::test::CaptureLogs::CaptureSink::write
void write(beast::Severity level, std::string const &text) override
Write text to the sink at the specified severity.
Definition
CaptureLogs.h:40
xrpl::test::CaptureLogs::CaptureSink::CaptureSink
CaptureSink(beast::Severity threshold, std::mutex &mutex, std::stringstream &strm)
Definition
CaptureLogs.h:34
xrpl::test::CaptureLogs::CaptureSink::strm_
std::stringstream & strm_
Definition
CaptureLogs.h:31
xrpl::test::CaptureLogs::CaptureSink::strmMutex_
std::mutex & strmMutex_
Definition
CaptureLogs.h:30
xrpl::test::CaptureLogs::makeSink
std::unique_ptr< beast::Journal::Sink > makeSink(std::string const &partition, beast::Severity threshold) override
Definition
CaptureLogs.h:65
xrpl::test::CaptureLogs::strm_
std::stringstream strm_
Definition
CaptureLogs.h:22
xrpl::test::CaptureLogs::pResult_
std::string * pResult_
Definition
CaptureLogs.h:23
xrpl::test::CaptureLogs::CaptureLogs
CaptureLogs(std::string *pResult)
Definition
CaptureLogs.h:55
xrpl::test::CaptureLogs::strmMutex_
std::mutex strmMutex_
Definition
CaptureLogs.h:21
xrpl::test::CaptureLogs::~CaptureLogs
~CaptureLogs() override
Definition
CaptureLogs.h:59
std::make_unique
T make_unique(T... args)
memory
mutex
beast
Definition
base_uint.h:697
beast::Severity
Severity
Severity level / threshold of a Journal message.
Definition
Journal.h:16
xrpl::test
Definition
STLedgerEntry.h:21
std::scoped_lock
sstream
string
std::unique_ptr
Generated by
1.17.0