121 lines
3.0 KiB
Markdown
121 lines
3.0 KiB
Markdown
# C language logging library logging
|
|
|
|
## brief
|
|
|
|
Logging is a lightweight and easy-to-use C language log library that supports log level, log format, log output, log files, and other functions.
|
|
|
|
## function
|
|
- Support log levels: DEBUG, INFO, Warning, ERROR, FATAL
|
|
- Support log formats: timestamp, log level, log content
|
|
- Support log output: console, file
|
|
- Support log files: automatic creation, automatic scrolling, log segmentation
|
|
|
|
## install
|
|
- Conan
|
|
```shell
|
|
conan create .
|
|
```
|
|
- cmake
|
|
```shell
|
|
git clone https://github.com/WangZhongDian/logging.git
|
|
cd logging
|
|
cmake build -B build . && cd build && cmake --build .
|
|
cmake --install .
|
|
```
|
|
|
|
## usage
|
|

|
|

|
|
|
|
### console log
|
|
```c
|
|
#include "logging.h"
|
|
|
|
int main() {
|
|
Log_info("This is an info message");
|
|
Log_error("This is an error message%s", "123");
|
|
Log_fatal("This is an fatal message");
|
|
Log_debug("This is a debug message");
|
|
Log_warning("This is a warning message%s", "123");
|
|
|
|
destroyDefaultLogger();
|
|
return 0;
|
|
}
|
|
```
|
|
|
|
### file log
|
|
```c
|
|
#include "logging.h"
|
|
#include "logging/logging-handler.h"
|
|
|
|
int main() {
|
|
log_Handler *hander = loggingHandlerFile("test_log", 1024 * 1024 * 10);
|
|
addHandler(getDefaultLogger(), hander);
|
|
|
|
Log_info("This is an info message");
|
|
Log_error("This is an error message%s", "123");
|
|
Log_fatal("This is an fatal message");
|
|
Log_debug("This is a debug message");
|
|
Log_warning("This is a warning message%s", "123");
|
|
|
|
destroyDefaultLogger();
|
|
return 0;
|
|
}
|
|
```
|
|
|
|
### Logging filter
|
|
> Support adding custom filters, currently with built-in substring filters
|
|
> The function of an filter is to redirect filtered logs to the filter's dedicated processor
|
|
|
|
#### Multiple substring filters
|
|
```c
|
|
#include "logging.h"
|
|
#include "logging/logging-core.h"
|
|
#include "logging/logging-filter.h"
|
|
#include <stdbool.h>
|
|
#include <stdio.h>
|
|
#include <time.h>
|
|
|
|
int main() {
|
|
Log_info("This is an info message");
|
|
Log_error("This is an error message%s", "123");
|
|
Log_fatal("This is an fatal message");
|
|
Log_debug("This is a debug message");
|
|
Log_warning("This is a warning message%s", "123");
|
|
|
|
char *test1[] = {"This", NULL};
|
|
|
|
log_filter *tint =
|
|
loggingFilterSubStr(test1,
|
|
LOG_DEBUG,
|
|
loggingHandlerFile("test_interceptor", 1024 * 1024),
|
|
false);
|
|
|
|
addFilter(getDefaultLogger(), tint);
|
|
|
|
char *test2[] = {"123", NULL};
|
|
|
|
log_filter *tint1 = loggingFilterSubStr(
|
|
test2,
|
|
LOG_ERROR,
|
|
loggingHandlerFile("test_interceptor1", 1024 * 1024),
|
|
true);
|
|
|
|
addFilter(getDefaultLogger(), tint1);
|
|
|
|
printf("\n");
|
|
printf("filter added\n");
|
|
printf("\n");
|
|
|
|
Log_info("This is an info message");
|
|
Log_error("This is an error message%s", "123");
|
|
Log_fatal("This is an fatal message");
|
|
Log_debug("This is a debug message");
|
|
Log_warning("This is a warning message%s", "123");
|
|
|
|
destroyDefaultLogger();
|
|
return 0;
|
|
}
|
|
```
|
|
|