File Coverage

/usr/local/lib/perl5/site_perl/5.26.1/x86_64-linux/XS/libpanda.x/i/panda/log/multi.h
Criterion Covered Total %
statement 3 3 100.0
branch n/a
condition n/a
subroutine n/a
pod n/a
total 3 3 100.0


line stmt bran cond sub pod time code
1             #pragma once
2             #include "log.h"
3             #include
4              
5             namespace panda { namespace log {
6              
7             struct MultiLogger : ILogger {
8 32           struct Channel {
9             Channel (ILoggerFromAny l, Level minl) : logger(std::move(l.value)), min_level(minl) {}
10 8           Channel (ILoggerFromAny l, IFormatterFromAny f = {}, Level minl = Level::Debug)
11 8           : logger(std::move(l.value)), formatter(std::move(f.value)), min_level(minl) {}
12              
13             ILoggerSP logger;
14             IFormatterSP formatter;
15             Level min_level;
16             };
17             using Channels = std::vector;
18              
19             MultiLogger (const Channels&);
20             ~MultiLogger ();
21              
22             void log_format (std::string&, const Info&, const IFormatter&) override;
23              
24             private:
25             const Channels channels; // could not be changed for thread-safety
26             };
27             using MultiLoggerSP = iptr;
28              
29             }}