luat_log_win32.c 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #include "luat_base.h"
  2. #include "luat_log.h"
  3. #include "luat_uart.h"
  4. #include "luat_mem.h"
  5. #include "printf.h"
  6. #include <stdio.h>
  7. typedef struct log_msg {
  8. char* buff;
  9. }log_msg_t;
  10. static uint8_t luat_log_uart_port = 0;
  11. static uint8_t luat_log_level_cur = LUAT_LOG_DEBUG;
  12. void luat_log_init_win32(void) {
  13. }
  14. void luat_log_set_uart_port(int port) {
  15. luat_log_uart_port = port;
  16. }
  17. void luat_print(const char* _str) {
  18. luat_nprint((char*)_str, strlen(_str));
  19. }
  20. void luat_nprint(char *s, size_t l) {
  21. char buff[4*1024];
  22. memcpy(buff, s, l);
  23. buff[l] = 0;
  24. printf("%s", buff);
  25. }
  26. void luat_log_set_level(int level) {
  27. luat_log_level_cur = level;
  28. }
  29. int luat_log_get_level() {
  30. return luat_log_level_cur;
  31. }
  32. #define LOGLOG_SIZE 1024
  33. void luat_log_log(int level, const char* tag, const char* _fmt, ...) {
  34. if (luat_log_level_cur > level) return;
  35. char buff[LOGLOG_SIZE] = {0};
  36. char *tmp = (char *)buff;
  37. switch (level)
  38. {
  39. case LUAT_LOG_DEBUG:
  40. buff[0] = 'D';
  41. break;
  42. case LUAT_LOG_INFO:
  43. buff[0] = 'I';
  44. break;
  45. case LUAT_LOG_WARN:
  46. buff[0] = 'W';
  47. break;
  48. case LUAT_LOG_ERROR:
  49. buff[0] = 'E';
  50. break;
  51. default:
  52. buff[0] = '?';
  53. break;
  54. }
  55. buff[1] = '/';
  56. tmp += 2;
  57. memcpy(tmp, tag, strlen(tag));
  58. buff[2+strlen(tag)] = ' ';
  59. tmp += strlen(tag) + 1;
  60. va_list args;
  61. va_start(args, _fmt);
  62. size_t len = vsnprintf_(tmp, LOGLOG_SIZE, _fmt, args);
  63. va_end(args);
  64. if (len > 0) {
  65. len = strlen(buff);
  66. // if (len > LOGLOG_SIZE - 2)
  67. // len = LOGLOG_SIZE - 2;
  68. // buff[len] = '\r';
  69. // buff[len+1] = '\n';
  70. // luat_nprint(buff, len+2);
  71. if (len > LOGLOG_SIZE - 1)
  72. len = LOGLOG_SIZE - 1;
  73. buff[len] = '\n';
  74. luat_nprint(buff, len+1);
  75. }
  76. }