log.h 902 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /**
  2. * Log Facility - The Quick6502 Project
  3. * include/log.h
  4. *
  5. * Created by Manoël Trapier on 19/05/10
  6. * Copyright (c) 2002-2019 986-Studio.
  7. *
  8. */
  9. #ifndef _LOG_H
  10. #define _LOG_H
  11. enum
  12. {
  13. LOG_ALWAYS = -1,
  14. LOG_PANIC = 0,
  15. LOG_ERROR,
  16. LOG_WARNING,
  17. LOG_NORMAL,
  18. LOG_VERBOSE,
  19. LOG_DEBUG,
  20. };
  21. #define TIME_STAMP_LOG
  22. #define MAX_DEBUG_LEVEL LOG_PANIC
  23. #define log(_level, _user, _fmt, ...) if ((_level <= MAX_DEBUG_LEVEL) || (_level <= LOG_PANIC)) do { log_real(_level, _user, _fmt, ##__VA_ARGS__); } while(0)
  24. void log_real(int level, char *user, char *fmt, ...);
  25. #define LOG(_level, _str, ...) if ((_level <= MAX_DEBUG_LEVEL) || (_level <= LOG_PANIC)) do { puts(_str); } while(0)
  26. #define LOGCODE(_level, _user, _code) log(_level, _user, ""); \
  27. if ((_level <= MAX_DEBUG_LEVEL) || (_level <= LOG_PANIC)) \
  28. do { _code; printf("\n"); } while(0)
  29. #endif /* _LOG_H */