Example rxi/log.c library

This commit is contained in:
Alexander Popov 2023-12-31 03:21:59 +03:00
commit 6b535aa50b
Signed by: iiiypuk
GPG Key ID: E47FE0AB36CD5ED6
10 changed files with 81 additions and 0 deletions

24
.editorconfig Normal file
View File

@ -0,0 +1,24 @@
root = true
[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[{*.c,*.h}]
indent_style = space
indent_size = 2
[Makefile]
indent_style = tab
indent_size = 4
[humans.txt]
indent_style = tab
indent_size = 2
[*.md]
trim_trailing_whitespace = false

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "rxi/log/3rdparty/log.c"]
path = rxi/log/3rdparty/log.c
url = https://github.com/rxi/log.c.git

BIN
.icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

0
README.md Normal file
View File

2
rxi/log/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
*.o
example_log

BIN
rxi/log/.screen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

1
rxi/log/3rdparty/log.c vendored Submodule

@ -0,0 +1 @@
Subproject commit f9ea34994bd58ed342d2245cd4110bb5c6790153

19
rxi/log/Makefile Normal file
View File

@ -0,0 +1,19 @@
PROGRAM = example_log
OBJ = example_log.o log.o
HEADER = -I./3rdparty/log.c/src
OUT =
CC = gcc
CFLAGS = -O2 -g -Wall $(HEADER)
LFLAGS =
LIBS =
all: $(PROGRAM)
$(PROGRAM): $(OBJ)
$(CC) $(CFLAGS) -o $@ $(OBJ)
log.o:
$(CC) $(CFLAGS) -c -DLOG_USE_COLOR -o $@ ./3rdparty/log.c/src/log.c
clean:
rm -f $(OBJ) $(PROGRAM)

18
rxi/log/README.md Normal file
View File

@ -0,0 +1,18 @@
# Example `rxi/log.c` library
Library link: https://github.com/rxi/log.c.git
For build run `make` command.
![Screenshot result](./.screen.png)
## Описание уровней логирования
* **Info** — общая информация о работе службы или сервиса.
* **Debug** — запись масштабных переходов состояний, например, обращение к базе данных, старт/пауза сервиса, успешная обработка записи и пр.
* **Warning** — нештатная ситуация, потенциальная проблема, может быть странный формат запроса или некорректный параметр вызова.
* **Error** — типичная ошибка.
* **Fatal** — тотальный сбой работоспособности, когда нет доступа к базе данных или сети, сервису не хватает места на жестком диске.
* **Trace** — пошаговые записи процесса. Полезен, когда сложно локализовать ошибку.
[(©)](https://greendc.ru/blog/kak-razobratsya-s-logirovaniem-gayd-dlya-nachinayushchikh/)

14
rxi/log/example_log.c Normal file
View File

@ -0,0 +1,14 @@
#include <log.h>
int main(int argc, char const *argv[]) {
log_info("LOG VERSION " LOG_VERSION "\n");
log_info("Example INFO message");
log_debug("Example DEBUG message");
log_warn("Example WARNING message");
log_error("Example ERROR message");
log_fatal("Example FATAL message");
log_trace("Example TRACE message");
return 0;
}