ifm3d
log_level.h
1
// -*- c++ -*-
2
/*
3
* Copyright 2023-present ifm electronic, gmbh
4
* SPDX-License-Identifier: Apache-2.0
5
*/
6
7
#ifndef IFM3D_COMMON_LOGGING_LOG_LEVEL_H
8
#define IFM3D_COMMON_LOGGING_LOG_LEVEL_H
9
10
#include <cctype>
11
#include <cstdint>
12
13
namespace
ifm3d
14
{
15
enum class
LogLevel : std::uint8_t
16
{
17
None = 0,
18
Critical = 1,
19
Error = 2,
20
Warning = 3,
21
Info = 4,
22
Debug = 5,
23
Verbose = 6
24
};
25
26
inline
const
char
*
27
log_level_to_string(LogLevel severity)
28
{
29
switch
(severity)
30
{
31
case
LogLevel::Critical:
32
return
"CRITICAL"
;
33
case
LogLevel::Error:
34
return
"ERROR"
;
35
case
LogLevel::Warning:
36
return
"WARN"
;
37
case
LogLevel::Info:
38
return
"INFO"
;
39
case
LogLevel::Debug:
40
return
"DEBUG"
;
41
case
LogLevel::Verbose:
42
return
"VERBOSE"
;
43
default
:
44
return
"NONE"
;
45
}
46
}
47
48
inline
LogLevel
49
log_level_from_string(
const
char
* str)
50
{
51
switch
(std::toupper(str[0]))
52
{
53
case
'C'
:
54
return
LogLevel::Critical;
55
case
'E'
:
56
return
LogLevel::Error;
57
case
'W'
:
58
return
LogLevel::Warning;
59
case
'I'
:
60
return
LogLevel::Info;
61
case
'D'
:
62
return
LogLevel::Debug;
63
case
'V'
:
64
return
LogLevel::Verbose;
65
default
:
66
return
LogLevel::None;
67
}
68
}
69
}
70
#endif
// IFM3D_COMMON_LOGGING_LOG_LEVEL_H
ifm3d
common
logging
log_level.h
Generated by
1.9.1