stumpless  2.1.0
severity.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: Apache-2.0 */
2 
3 /*
4  * Copyright 2018-2022 Joel E. Anderson
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18 
26 #ifndef __STUMPLESS_SEVERITY_H
27 # define __STUMPLESS_SEVERITY_H
28 
29 # include <stumpless/config.h>
30 # include <stumpless/generator.h>
31 
32 # ifdef STUMPLESS_SYSLOG_H_COMPATIBLE
33 # include <syslog.h>
34 # endif
35 
37 # ifdef STUMPLESS_SYSLOG_H_COMPATIBLE
38 # define STUMPLESS_SEVERITY_MASK( SEVERITY ) ( LOG_MASK( SEVERITY ) )
39 # else
40 # define STUMPLESS_SEVERITY_MASK( SEVERITY ) ( 1 << ( SEVERITY ) )
41 # endif
42 
44 # ifdef STUMPLESS_SYSLOG_H_COMPATIBLE
45 # define STUMPLESS_SEVERITY_MASK_UPTO( SEVERITY ) ( LOG_UPTO( SEVERITY ) )
46 # else
47 # define STUMPLESS_SEVERITY_MASK_UPTO( SEVERITY ) \
48 ( ( 1 << ( ( SEVERITY ) + 1 ) ) - 1 )
49 # endif
50 
56 # ifdef STUMPLESS_SYSLOG_H_COMPATIBLE
57 # define STUMPLESS_SEVERITY_EMERG_VALUE LOG_EMERG
58 # else
59 # define STUMPLESS_SEVERITY_EMERG_VALUE 0
60 # endif
61 
67 # ifdef STUMPLESS_SYSLOG_H_COMPATIBLE
68 # define STUMPLESS_SEVERITY_ALERT_VALUE LOG_ALERT
69 # else
70 # define STUMPLESS_SEVERITY_ALERT_VALUE 1
71 # endif
72 
78 # ifdef STUMPLESS_SYSLOG_H_COMPATIBLE
79 # define STUMPLESS_SEVERITY_CRIT_VALUE LOG_CRIT
80 # else
81 # define STUMPLESS_SEVERITY_CRIT_VALUE 2
82 # endif
83 
89 # ifdef STUMPLESS_SYSLOG_H_COMPATIBLE
90 # define STUMPLESS_SEVERITY_ERR_VALUE LOG_ERR
91 # else
92 # define STUMPLESS_SEVERITY_ERR_VALUE 3
93 # endif
94 
100 # ifdef STUMPLESS_SYSLOG_H_COMPATIBLE
101 # define STUMPLESS_SEVERITY_WARNING_VALUE LOG_WARNING
102 # else
103 # define STUMPLESS_SEVERITY_WARNING_VALUE 4
104 # endif
105 
111 # ifdef STUMPLESS_SYSLOG_H_COMPATIBLE
112 # define STUMPLESS_SEVERITY_NOTICE_VALUE LOG_NOTICE
113 # else
114 # define STUMPLESS_SEVERITY_NOTICE_VALUE 5
115 # endif
116 
122 # ifdef STUMPLESS_SYSLOG_H_COMPATIBLE
123 # define STUMPLESS_SEVERITY_INFO_VALUE LOG_INFO
124 # else
125 # define STUMPLESS_SEVERITY_INFO_VALUE 6
126 # endif
127 
133 # ifdef STUMPLESS_SYSLOG_H_COMPATIBLE
134 # define STUMPLESS_SEVERITY_DEBUG_VALUE LOG_DEBUG
135 # else
136 # define STUMPLESS_SEVERITY_DEBUG_VALUE 7
137 # endif
138 
145 # define STUMPLESS_SEVERITY_TRACE_VALUE STUMPLESS_SEVERITY_DEBUG_VALUE
146 
155 # define STUMPLESS_FOREACH_SEVERITY( ACTION ) \
156  \
157 ACTION( STUMPLESS_SEVERITY_EMERG, STUMPLESS_SEVERITY_EMERG_VALUE ) \
158  \
159 ACTION( STUMPLESS_SEVERITY_ALERT, STUMPLESS_SEVERITY_ALERT_VALUE ) \
160  \
161 ACTION( STUMPLESS_SEVERITY_CRIT, STUMPLESS_SEVERITY_CRIT_VALUE ) \
162  \
163 ACTION( STUMPLESS_SEVERITY_ERR, STUMPLESS_SEVERITY_ERR_VALUE ) \
164  \
165 ACTION( STUMPLESS_SEVERITY_WARNING, STUMPLESS_SEVERITY_WARNING_VALUE ) \
166  \
167 ACTION( STUMPLESS_SEVERITY_NOTICE, STUMPLESS_SEVERITY_NOTICE_VALUE ) \
168  \
169 ACTION( STUMPLESS_SEVERITY_INFO, STUMPLESS_SEVERITY_INFO_VALUE ) \
170  \
171 ACTION( STUMPLESS_SEVERITY_DEBUG, STUMPLESS_SEVERITY_DEBUG_VALUE )
172 
173 # ifdef __cplusplus
174 extern "C" {
175 # endif
176 
187 };
188 
195 # define STUMPLESS_SEVERITY_TRACE STUMPLESS_SEVERITY_DEBUG
196 
217 const char *
219 
242 stumpless_get_severity_enum( const char *severity_string );
243 
244 # ifdef __cplusplus
245 } /* extern "C" */
246 # endif
247 
248 #endif /* __STUMPLESS_SEVERITY_H */
stumpless_severity
stumpless_severity
All possible severity codes available to log entries.
Definition: severity.h:185
STUMPLESS_FOREACH_SEVERITY
#define STUMPLESS_FOREACH_SEVERITY(ACTION)
A macro function that runs the provided action once for each severity, providing the symbol and value...
Definition: severity.h:155
STUMPLESS_GENERATE_ENUM
#define STUMPLESS_GENERATE_ENUM(NAME, VALUE)
Returns a definition of a symbol with the given name and value fit for use in an enum definition.
Definition: generator.h:33
stumpless_get_severity_enum
enum stumpless_severity stumpless_get_severity_enum(const char *severity_string)
Gets the enum value corresponding to the given severity string.
stumpless_get_severity_string
const char * stumpless_get_severity_string(enum stumpless_severity severity)
Gets the string representation of the given severity.
STUMPLESS_PUBLIC_FUNCTION
#define STUMPLESS_PUBLIC_FUNCTION
Marks functions that are provided for use by the library.
Definition: config.h:31
config.h
generator.h