logger_stdout.c 1014 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include <stdio.h>
  2. #include <stdarg.h>
  3. #include "logger_stdout.h"
  4. #include "ua_types.h"
  5. void print_time() {
  6. UA_DateTime now = UA_DateTime_now();
  7. UA_ByteString str;
  8. UA_DateTime_toString(now, &str);
  9. printf("\"%.*s\"}", str.length, str.data);
  10. UA_ByteString_deleteMembers(&str);
  11. }
  12. #define LOG_FUNCTION(LEVEL) \
  13. void log_##LEVEL(UA_LoggerCategory category, const char *msg, ...) { \
  14. va_list args; \
  15. puts("##LEVEL - "); \
  16. print_time(); \
  17. puts(" - "); \
  18. va_start(args, msg); \
  19. vprintf(msg, args); \
  20. puts("\n"); \
  21. va_end(args); \
  22. }
  23. LOG_FUNCTION(trace)
  24. LOG_FUNCTION(debug)
  25. LOG_FUNCTION(info)
  26. LOG_FUNCTION(warning)
  27. LOG_FUNCTION(error)
  28. LOG_FUNCTION(fatal)
  29. void Logger_Stdout_init(UA_Logger *logger) {
  30. *logger = (UA_Logger){
  31. .log_trace = log_trace,
  32. .log_debug = log_debug,
  33. .log_info = log_info,
  34. .log_warning = log_warning,
  35. .log_error = log_error,
  36. .log_fatal = log_fatal
  37. };
  38. }