OpenMEEG
Loading...
Searching...
No Matches
OpenMEEG
include
logger.h
Go to the documentation of this file.
1
// Project Name: OpenMEEG (http://openmeeg.github.io)
2
// © INRIA and ENPC under the French open source license CeCILL-B.
3
// See full copyright notice in the file LICENSE.txt
4
// If you make a copy of this file, you must either:
5
// - provide also LICENSE.txt and modify this header to refer to it.
6
// - replace this header by the LICENSE.txt content.
7
8
#pragma once
9
10
#include <iostream>
11
#include <
NullStream.h
>
12
13
namespace
OpenMEEG
{
14
15
typedef
enum
{
DEBUG
,
PROGRESS
,
INFORMATION
,
WARNING
,
ERROR
}
InfoLevel
;
16
17
class
Logger
{
18
public
:
19
20
Logger
() { }
21
22
void
set_info_level
(
const
InfoLevel
level) { verbosity = level; }
23
24
InfoLevel
get_info_level
()
const
{
return
verbosity; }
25
26
bool
is_verbose
(
const
InfoLevel
level) {
return
verbosity<=level; }
27
28
static
Logger
&
logger
() {
29
static
Logger
logger
;
30
return
logger
;
31
}
32
33
private
:
34
35
InfoLevel
verbosity;
36
};
37
38
inline
std::ostream&
39
log_stream
(
const
InfoLevel
level) {
40
static
NullStream<char>
nullstream;
41
if
(level==
WARNING
&&
Logger::logger
().is_verbose(level))
42
std::cout <<
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
<< std::endl
43
<<
"!!!!!!!!!!! WARNING !!!!!!!!!!!"
<< std::endl
44
<<
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
<< std::endl;
45
return
(
Logger::logger
().is_verbose(level)) ? std::cout : nullstream;
46
}
47
}
NullStream.h
OpenMEEG::Logger
Definition
logger.h:17
OpenMEEG::Logger::get_info_level
InfoLevel get_info_level() const
Definition
logger.h:24
OpenMEEG::Logger::is_verbose
bool is_verbose(const InfoLevel level)
Definition
logger.h:26
OpenMEEG::Logger::Logger
Logger()
Definition
logger.h:20
OpenMEEG::Logger::logger
static Logger & logger()
Definition
logger.h:28
OpenMEEG::Logger::set_info_level
void set_info_level(const InfoLevel level)
Definition
logger.h:22
OpenMEEG::NullStream
Definition
NullStream.h:40
OpenMEEG
Definition
analytics.h:14
OpenMEEG::log_stream
std::ostream & log_stream(const InfoLevel level)
Definition
logger.h:39
OpenMEEG::InfoLevel
InfoLevel
Definition
logger.h:15
OpenMEEG::PROGRESS
@ PROGRESS
Definition
logger.h:15
OpenMEEG::ERROR
@ ERROR
Definition
logger.h:15
OpenMEEG::DEBUG
@ DEBUG
Definition
logger.h:15
OpenMEEG::WARNING
@ WARNING
Definition
logger.h:15
OpenMEEG::INFORMATION
@ INFORMATION
Definition
logger.h:15
Generated by
1.12.0