41 const char* LogLevelTxt[4] = {
"Debug",
"Info",
"Warning",
"Error"};
44 void begin(Stream& out,
LogLevel level = Warning) {
45 this->log_stream_ptr = &out;
46 this->log_level = level;
50 bool isLogging() {
return log_stream_ptr !=
nullptr; }
52 void error(
const char* str,
const char* str1 =
nullptr,
53 const char* str2 =
nullptr) {
54 log(Error, str, str1, str2);
57 void info(
const char* str,
const char* str1 =
nullptr,
58 const char* str2 =
nullptr) {
59 log(Info, str, str1, str2);
62 void warning(
const char* str,
const char* str1 =
nullptr,
63 const char* str2 =
nullptr) {
64 log(Warning, str, str1, str2);
67 void debug(
const char* str,
const char* str1 =
nullptr,
68 const char* str2 =
nullptr) {
69 log(Debug, str, str1, str2);
73 void log(
LogLevel current_level,
const char* str,
const char* str1 =
nullptr,
74 const char* str2 =
nullptr) {
75 if (log_stream_ptr !=
nullptr) {
76 if (current_level >= log_level) {
77 log_stream_ptr->print(
"Emulator - ");
78 log_stream_ptr->print((
char*)LogLevelTxt[current_level]);
79 log_stream_ptr->print(
": ");
80 log_stream_ptr->print((
char*)str);
81 if (str1 !=
nullptr) {
82 log_stream_ptr->print(
" ");
83 log_stream_ptr->print((
char*)str1);
85 if (str2 !=
nullptr) {
86 log_stream_ptr->print(
" ");
87 log_stream_ptr->print((
char*)str2);
89 log_stream_ptr->println();
90 log_stream_ptr->flush();
96 Stream* log_stream_ptr = &Serial;