cwist
Modern C web framework with libttak runtime
Loading...
Searching...
No Matches
log.c
Go to the documentation of this file.
1
6
#define _POSIX_C_SOURCE 200809L
7
#include <
cwist/core/log.h
>
8
#include <stdio.h>
9
#include <stdarg.h>
10
#include <time.h>
11
12
cwist_macro_log_level_t
g_cwist_log_level
=
CWIST_LOG_LEVEL_NONE
;
13
25
void
cwist_log_write
(
cwist_macro_log_level_t
level,
const
char
*fmt, ...) {
26
const
char
*level_str =
"???"
;
27
switch
(level) {
28
case
CWIST_LOG_LEVEL_INFO
: level_str =
"INFO"
;
break
;
29
case
CWIST_LOG_LEVEL_WARN
: level_str =
"WARN"
;
break
;
30
case
CWIST_LOG_LEVEL_ERROR
: level_str =
"ERROR"
;
break
;
31
case
CWIST_LOG_LEVEL_DEBUG
: level_str =
"DEBUG"
;
break
;
32
default
:
break
;
33
}
34
35
time_t now = time(NULL);
36
struct
tm tm_info;
37
localtime_r(&now, &tm_info);
38
char
time_buf[32];
39
strftime(time_buf,
sizeof
(time_buf),
"%Y-%m-%d %H:%M:%S"
, &tm_info);
40
41
fprintf(stderr,
"[%s] [%s] "
, level_str, time_buf);
42
43
va_list args;
44
va_start(args, fmt);
45
vfprintf(stderr, fmt, args);
46
va_end(args);
47
48
fprintf(stderr,
"\n"
);
49
}
g_cwist_log_level
cwist_macro_log_level_t g_cwist_log_level
Global active log level. Set this to control output verbosity.
Definition
log.c:12
cwist_log_write
void cwist_log_write(cwist_macro_log_level_t level, const char *fmt,...)
Write a single log record to stderr with a timestamp and level tag.
Definition
log.c:25
log.h
Lightweight macro-based internal logging for CWIST.
cwist_macro_log_level_t
cwist_macro_log_level_t
Definition
log.h:18
CWIST_LOG_LEVEL_DEBUG
@ CWIST_LOG_LEVEL_DEBUG
Definition
log.h:20
CWIST_LOG_LEVEL_INFO
@ CWIST_LOG_LEVEL_INFO
Definition
log.h:21
CWIST_LOG_LEVEL_WARN
@ CWIST_LOG_LEVEL_WARN
Definition
log.h:22
CWIST_LOG_LEVEL_ERROR
@ CWIST_LOG_LEVEL_ERROR
Definition
log.h:23
CWIST_LOG_LEVEL_NONE
@ CWIST_LOG_LEVEL_NONE
Definition
log.h:19
src
core
log
log.c
Generated by
1.9.8