Logger.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #pragma once
  2. # ifndef LOG_SYS_H
  3. # define LOG_SYS_H
  4. # include <iostream>
  5. # include <fstream>
  6. # include <string>
  7. # include <time.h>
  8. # include <stdio.h>
  9. # include <stdlib.h>
  10. using std::cout;
  11. using std::string;
  12. using std::endl;
  13. using std::to_string;
  14. using std::ios;
  15. class Logger {
  16. public:
  17. enum log_level { debug, info, warning, error };// 日志等级
  18. enum log_target { file, terminal, file_and_terminal };// 日志输出目标
  19. private:
  20. string currTime() {
  21. // 获取当前时间,并规范表示
  22. char tmp[64];
  23. time_t ptime;
  24. time(&ptime); // time_t time (time_t* timer);
  25. strftime(tmp, sizeof(tmp), "%Y-%m-%d %H:%M:%S", localtime(&ptime));
  26. return tmp;
  27. }
  28. std::ofstream outfile; // 将日志输出到文件的流对象
  29. log_target target; // 日志输出目标
  30. string path; // 日志文件路径
  31. log_level level; // 日志等级
  32. void output(string text, log_level act_level); // 输出行为
  33. public:
  34. Logger(); // 默认构造函数
  35. Logger(log_target target, log_level level, string path);
  36. void DEBUG(string text);
  37. void INFO(string text);
  38. void WARNING(string text);
  39. void LERROR(string text);
  40. };
  41. # endif