diff options
| author | realtradam <[email protected]> | 2023-04-14 16:45:29 -0400 |
|---|---|---|
| committer | realtradam <[email protected]> | 2023-04-14 16:45:29 -0400 |
| commit | 4b9437a5bf8dea4475a2dd5f433ee9729d6493c2 (patch) | |
| tree | 7e4d76abcae19747043d29d87cfe85b99b2c625c /src/log | |
| parent | 3387c9fef273f2cc0674ea77ed950c0965299c4e (diff) | |
| download | RodeoKit-4b9437a5bf8dea4475a2dd5f433ee9729d6493c2.tar.gz RodeoKit-4b9437a5bf8dea4475a2dd5f433ee9729d6493c2.zip | |
split off logging into seperate files
Diffstat (limited to 'src/log')
| -rw-r--r-- | src/log/irodeo_log.h | 12 | ||||
| -rw-r--r-- | src/log/rodeo_log.c | 73 |
2 files changed, 85 insertions, 0 deletions
diff --git a/src/log/irodeo_log.h b/src/log/irodeo_log.h new file mode 100644 index 0000000..2eb3341 --- /dev/null +++ b/src/log/irodeo_log.h @@ -0,0 +1,12 @@ + +// -- internal -- +// public +#include "rodeo/log.h" + +typedef +struct +{ + rodeo_log_function logging_function; +} +irodeo_log_state_t; + diff --git a/src/log/rodeo_log.c b/src/log/rodeo_log.c new file mode 100644 index 0000000..bc2c4f0 --- /dev/null +++ b/src/log/rodeo_log.c @@ -0,0 +1,73 @@ + +// -- internal -- +// public +#include "rodeo/log.h" +#include "rodeo/common.h" +// private +#include "log/irodeo_log.h" + +static irodeo_log_state_t istate = {0}; + +void +rodeo_log( + rodeo_logLevel_t loglevel, + const char *format, + ... +) +{ + cstr formatted; + mrodeo_vargs_do(format) + { + formatted = cstr_from_vfmt(format, vargs); + } + + switch(loglevel) + { + case rodeo_logLevel_info: + cstr_insert( + &formatted, + 0, + "[INFO]: " + ); + break; + case rodeo_logLevel_warning: + cstr_insert( + &formatted, + 0, + "\033[33m[WARN]:\033[0m " + ); + break; + case rodeo_logLevel_error: + cstr_insert( + &formatted, + 0, + "\033[31;1m[ERROR]:\033[0m " + ); + break; + } + cstr_append( + &formatted, + "\n" + ); + + if(istate.logging_function == NULL) + { + printf("%s", cstr_str(&formatted)); + } + else + { + istate.logging_function(formatted); + } +} + +void +rodeo_log_function_set(rodeo_log_function rodeo_log_func) +{ + istate.logging_function = rodeo_log_func; +} + +rodeo_log_function +rodeo_log_function_get(void) +{ + return istate.logging_function; +} |
