EMULATOR_PDP_11
STEPIC Учебный проект на 'С', эмулятор PDP_11 в стиле ООП
Loading...
Searching...
No Matches
logger.c File Reference
#include "utils/logger/logger.h"
#include <stdarg.h>
#include <stdio.h>
#include <time.h>
Include dependency graph for logger.c:

Functions

void log_message (log_level_t level, const char *fmt,...)
 
log_level_t set_log_level (log_level_t level)
 

Variables

log_level_t current_log_level = DEBUG
 

Function Documentation

◆ log_message()

void log_message ( log_level_t  level,
const char *  fmt,
  ... 
)
12{
13
14 const char *levels[]
15 = { "PRINT_RESULT", "ERROR", "INFO", "WARNING", "TRACE", "DEBUG" };
16 const char *level_colors[] = { CLR_PRINT_RESULT, CLR_ERROR, CLR_INFO,
18
19 // Если уровень сообщения выше текущего
20 // порога, игнорируем его
21 if (level > current_log_level) {
22 return;
23 }
24 // Получение текущего времени
25 time_t now = time(NULL);
26 struct tm *t = localtime(&now);
27 char time_str[20];
28 strftime(time_str, sizeof(time_str), "%H:%M:%S", t);
29
30 // Печать префикса уровня
31 // printf("[%s] ", levels[level]);
32 // printf("%s[%s]\t[%s] [%s:%d] %s(): ", level_colors[level],
33 // levels[level],
34 // time_str, file, line, func);
35 if (level == 0) {
36 printf("%s", level_colors[level]);
37 } else {
38 printf("\n%s[%s]: ", level_colors[level], levels[level]);
39 }
40
41 // Обработка переменного числа аргументов
42 va_list args;
43 va_start(args, fmt);
44 vprintf(fmt, args);
45 va_end(args);
46 printf(CLR_RESET "\n");
47 return;
48}
log_level_t current_log_level
Definition logger.c:7
#define CLR_PRINT_RESULT
Definition logger.h:13
#define CLR_RESET
Definition logger.h:19
#define CLR_WARNING
Definition logger.h:16
#define CLR_DEBUG
Definition logger.h:18
#define CLR_INFO
Definition logger.h:15
#define CLR_TRACE
Definition logger.h:17
#define CLR_ERROR
Definition logger.h:14

◆ set_log_level()

log_level_t set_log_level ( log_level_t  level)
52{
53 // Установка нового порогового и возврат
54 // предыдущего значения logger;
56 current_log_level = level;
57 return old_level;
58}
log_level_t
Definition logger.h:4

Variable Documentation

◆ current_log_level

log_level_t current_log_level = DEBUG