log.h 982 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /**
  2. * Log Facility - The Quick6502 Project
  3. * include/log.h
  4. *
  5. * Created by Manoel Trapier on 19/05/10
  6. * Copyright 2010 986 Corp. All rights reserved.
  7. *
  8. * $LastChangedDate:$
  9. * $Author:$
  10. * $HeadURL:$
  11. * $Revision:$
  12. *
  13. */
  14. #ifndef _LOG_H
  15. #define _LOG_H
  16. enum
  17. {
  18. LOG_ALWAYS = -1,
  19. LOG_PANIC = 0,
  20. LOG_ERROR,
  21. LOG_WARNING,
  22. LOG_NORMAL,
  23. LOG_VERBOSE,
  24. LOG_DEBUG,
  25. };
  26. #define TIME_STAMP_LOG
  27. #define MAX_DEBUG_LEVEL LOG_PANIC
  28. #define log(_level, _user, _fmt, ...) if ((_level <= MAX_DEBUG_LEVEL) || (_level <= LOG_PANIC)) do { log_real(_level, _user, _fmt, ##__VA_ARGS__); } while(0)
  29. void log_real(int level, char *user, char *fmt, ...);
  30. #define LOG(_level, _str, ...) if ((_level <= MAX_DEBUG_LEVEL) || (_level <= LOG_PANIC)) do { puts(_str); } while(0)
  31. #define LOGCODE(_level, _user, _code) log(_level, _user, ""); \
  32. if ((_level <= MAX_DEBUG_LEVEL) || (_level <= LOG_PANIC)) \
  33. do { _code; printf("\n"); } while(0)
  34. #endif /* _LOG_H */