log.c 744 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #include <stdarg.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include "log.h"
  5. static int loglevel = 0;
  6. void
  7. init_log(int level)
  8. {
  9. loglevel = level;
  10. char *debuglevel = getenv("LIBMEGAPIXELS_DEBUG");
  11. if (debuglevel != NULL) {
  12. char *end;
  13. long env_level = strtol(debuglevel, &end, 10);
  14. loglevel = (int) env_level;
  15. }
  16. }
  17. void
  18. libmegapixels_loglevel(int level)
  19. {
  20. loglevel = level;
  21. }
  22. void
  23. log_error(const char *fmt, ...)
  24. {
  25. va_list args;
  26. va_start(args, fmt);
  27. fprintf(stderr, "[libmegapixels] ");
  28. vfprintf(stderr, fmt, args);
  29. va_end(args);
  30. }
  31. void
  32. log_debug(const char *fmt, ...)
  33. {
  34. if (loglevel < 2) {
  35. return;
  36. }
  37. va_list args;
  38. va_start(args, fmt);
  39. fprintf(stderr, "[libmegapixels] ");
  40. vfprintf(stderr, fmt, args);
  41. va_end(args);
  42. }