Bluenet  5.7.0
Bluenet, firmware for nRF52 smart home devices
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
cs_LogStdPrintf.h
Go to the documentation of this file.
1/*
2 * Author: Crownstone Team
3 * Copyright: Crownstone (https://crownstone.rocks)
4 * Date: Sep 1, 2022
5 * License: LGPLv3+, Apache License 2.0, and/or MIT (triple-licensed)
6 */
7
8#pragma once
9
10#include <cstdio>
11#include <iostream>
12
13__attribute__((unused)) static bool _logPrefixHost = true;
14
15// use out of range for reset.
16constexpr void setPrintfColor(int verbosity) {
17 switch (verbosity) {
18 case SERIAL_VERY_VERBOSE: std::printf("\033[39m"); break;
19 case SERIAL_VERBOSE: std::printf("\033[90m"); break;
20 case SERIAL_DEBUG: std::printf("\033[39m"); break;
21 case SERIAL_INFO: std::printf("\033[34m"); break;
22 case SERIAL_WARN: std::printf("\033[33m"); break;
23 case SERIAL_ERROR: std::printf("\033[31m"); break;
24 case SERIAL_FATAL: std::printf("\033[31m"); break;
25 default: std::printf("\033[39m"); break;
26 }
27}
28
29#define _FILE (sizeof(__FILE__) > 30 ? __FILE__ + (sizeof(__FILE__) - 30 - 1) : __FILE__)
30
31#define _log(level, addNewLine, fmt, ...) \
32 if (level <= SERIAL_VERBOSITY) { \
33 if (_logPrefixHost) { \
34 std::printf("[%-30.30s : %-4d] ", _FILE, __LINE__); \
35 } \
36 setPrintfColor(level); \
37 std::printf(fmt, ##__VA_ARGS__); \
38 setPrintfColor(-1); \
39 if (addNewLine) { \
40 std::printf("\r\n"); \
41 } \
42 _logPrefixHost = addNewLine; \
43 }
44
45#define _logArray(level, addNewLine, pointer, size, ...)
static bool _logPrefixHost
Definition: cs_LogStdPrintf.h:13
constexpr void setPrintfColor(int verbosity)
Definition: cs_LogStdPrintf.h:16
#define SERIAL_VERY_VERBOSE
Definition: cs_SerialTypes.h:26
#define SERIAL_WARN
Definition: cs_SerialTypes.h:22
#define SERIAL_VERBOSE
Definition: cs_SerialTypes.h:25
#define SERIAL_FATAL
Definition: cs_SerialTypes.h:20
#define SERIAL_ERROR
Definition: cs_SerialTypes.h:21
#define SERIAL_INFO
Definition: cs_SerialTypes.h:23
#define SERIAL_DEBUG
Definition: cs_SerialTypes.h:24