TS-E+ базовая библиотека.
libTSE+
 Указатель Классы Функции Переменные Определения типов
logger.h
1 /*
2  * logger.h
3  *
4  * Created on: Apr 13, 2015
5  * Author: nick
6  */
7 
8 #ifndef LOGGER_H_
9 #define LOGGER_H_
10 
11 #include <stdio.h>
12 #include <avr/pgmspace.h>
13 #include "system.h"
14 /*
15  * Уровни логгирования и соответствующие им отображаемые символы
16  */
17 typedef enum {
18  debug = '-',
19  info = '+',
20  warn = '*',
21  err = '!'
22 } LogLevel;
23 
27 typedef void (*LogAppender)(const char *);
28 
32 class LogWriter {
33 private:
34  uint32_t _start_address;
35  uint32_t _record_address;
36  LogAppender _appender;
37  void printf(LogLevel, const char *,va_list,int (*formatter)(char *, const char *, va_list));
38 public:
39  static const size_t LOG_SIZE; // размер лога в байтах
40  static const size_t LOG_RECORD_SIZE; // размер записи лога в байтах
41  LogWriter();
42  const LogWriter operator << (const char *msg) {
43  info(msg);
44  return *this;
45  }
46  void info(const char * ,...);
47  void debug(const char *,...);
48  void warn(const char * ,...);
49  void error(const char *,...);
50  void info_P(const char *,...);
51  void debug_P(const char *,...);
52  void warn_P(const char *,...);
53  void error_P(const char * ,...);
57  LogAppender appender(LogAppender a) {
58  LogAppender prev = _appender;
59  _appender = a;
60  return prev;
61  }
68  bool read(size_t index, char *buffer);
69 
70 };
71 
75 extern LogWriter* Log;
76 
77 #endif /* LOGGER_H_ */
LogAppender appender(LogAppender a)
Definition: logger.h:57
Definition: logger.h:32
bool read(size_t index, char *buffer)