Mir
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
include
common
mir
logging
logger.h
Go to the documentation of this file.
1
/*
2
* Copyright © 2012-2015 Canonical Ltd.
3
*
4
* This program is free software: you can redistribute it and/or modify it
5
* under the terms of the GNU Lesser General Public License version 3,
6
* as published by the Free Software Foundation.
7
*
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU Lesser General Public License for more details.
12
*
13
* You should have received a copy of the GNU Lesser General Public License
14
* along with this program. If not, see <http://www.gnu.org/licenses/>.
15
*
16
* Authored by: Thomas Voß <thomas.voss@canonical.com>
17
*/
18
19
#ifndef MIR_LOGGING_LOGGER_H_
20
#define MIR_LOGGING_LOGGER_H_
21
22
#include <memory>
23
#include <string>
24
25
namespace
mir
26
{
27
namespace
logging
28
{
29
30
enum class
Severity
31
{
32
critical
= 0,
33
error
= 1,
34
warning
= 2,
35
informational
= 3,
36
debug
= 4
37
};
38
39
// A facade to shield the inner core of mir to prevent an actual
40
// logging framework from leaking implementation detail.
41
class
Logger
42
{
43
public
:
44
virtual
void
log
(
Severity
severity,
45
const
std::string
& message,
46
const
std::string
& component) = 0;
47
48
/*
49
* Those playing at home may wonder why we're saying the 4th argument is the format string,
50
* when it's the 3rd argument in the signature.
51
*
52
* The answer, of course, is that the attribute doesn't know about the implicit
53
* 'this' first parameter of C++!
54
*/
55
virtual
void
log
(
char
const
* component,
Severity
severity,
char
const
* format, ...)
56
__attribute__ ((format (printf, 4, 5)));
57
58
protected
:
59
Logger
() {}
60
virtual
~
Logger
() =
default
;
61
Logger
(
const
Logger
&) =
delete
;
62
Logger
& operator=(
const
Logger
&) =
delete
;
63
};
64
65
void
log
(
Severity
severity,
const
std::string
& message,
const
std::string
& component);
66
void
set_logger
(std::shared_ptr<Logger>
const
& new_logger);
67
68
}
69
}
70
71
#endif // MIR_LOGGING_LOGGER_H_
mir
Definition:
as_render_target.h:27
mir::logging::Severity::error
mir::logging::Logger::Logger
Logger()
Definition:
logger.h:59
mir::logging::log
void log(Severity severity, const std::string &message, const std::string &component)
mir::logging::Logger
Definition:
logger.h:41
mir::OptionType::string
mir::logging::Severity::critical
mir::logging::set_logger
void set_logger(std::shared_ptr< Logger > const &new_logger)
mir::logging::Severity::warning
mir::logging::Severity
Severity
Definition:
logger.h:30
mir::logging::Severity::informational
mir::logging::Severity::debug
Copyright © 2012-2016 Canonical Ltd.
Generated on Wed Oct 11 22:26:23 UTC 2017