log.h 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. #ifndef _Log_H
  2. #define _Log_H
  3. /*
  4. * Copyright STREAMIT BV, 2010.
  5. *
  6. * Project : SIR
  7. * Module : Log
  8. * File name $Workfile: Log.h $
  9. * Last Save $Date: 2003/08/16 15:01:36 $
  10. * $Revision: 0.1 $
  11. * Creation Date : 2003/08/16 15:01:36
  12. *
  13. * Description :
  14. *
  15. */
  16. /*!
  17. *\ brief Define this to output raw unformatted output.
  18. *
  19. * Advantage of RAW is you can use fprintf(stdout, "format", ...) anywhere.
  20. * Disadvantage is that there is no selection on loglevel and that there
  21. * is no indication whether it is a warning, error, etc.
  22. */
  23. //#define LOG_RAW
  24. /*--------------------------------------------------------------------------*/
  25. /* Include files */
  26. /*--------------------------------------------------------------------------*/
  27. #include <stdio.h>
  28. /*--------------------------------------------------------------------------*/
  29. /* Constant definitions */
  30. /*--------------------------------------------------------------------------*/
  31. #ifdef LOG_RAW
  32. #define LogMsg_P fputc('\n', stdout);fprintf_P
  33. #endif
  34. /*--------------------------------------------------------------------------*/
  35. /* Type declarations */
  36. /*--------------------------------------------------------------------------*/
  37. /*! \brief The log priority levels
  38. * The first entry has the highest priority
  39. */
  40. #ifdef LOG_RAW
  41. #define LOG_EMERG stdout
  42. #define LOG_ALERT stdout
  43. #define LOG_CRIT stdout
  44. #define LOG_ERR stdout
  45. #define LOG_WARNING stdout
  46. #define LOG_NOTICE stdout
  47. #define LOG_INFO stdout
  48. #define LOG_DEBUG stdout
  49. typedef FILE * TLogLevel;
  50. #else
  51. typedef u_char TLogLevel;
  52. #endif
  53. // bit 0..2 for LEVEL
  54. #define LOG_EMERG_LEV 0x00
  55. #define LOG_ALERT_LEV 0x01
  56. #define LOG_CRIT_LEV 0x02
  57. #define LOG_ERR_LEV 0x03
  58. #define LOG_WARNING_LEV 0x04
  59. #define LOG_NOTICE_LEV 0x05
  60. #define LOG_INFO_LEV 0x06
  61. #define LOG_DEBUG_LEV 0x07
  62. // bit 3..7 for MODULE
  63. #define LOG_AUDIO_MODULE 0x10
  64. #define LOG_CHANNEL_MODULE 0x20
  65. #define LOG_COMAND_MODULE 0x30
  66. #define LOG_DISPLAY_MODULE 0x40
  67. #define LOG_FAT_MODULE 0x50
  68. #define LOG_FLASH_MODULE 0x60
  69. #define LOG_HTTP_MODULE 0x70
  70. #define LOG_INET_MODULE 0x80
  71. #define LOG_KEYBOARD_MODULE 0x90
  72. #define LOG_LED_MODULE 0xA0
  73. #define LOG_LOG_MODULE 0xB0
  74. #define LOG_MAIN_MODULE 0xC0
  75. #define LOG_MENU_MODULE 0xD0
  76. #define LOG_MMC_MODULE 0xE0
  77. #define LOG_MMCDRV_MODULE 0xF0
  78. #define LOG_NTP_MODULE 0xF8
  79. #define LOG_PARSE_MODULE 0x08
  80. #define LOG_PLAYER_MODULE 0x18
  81. #define LOG_REMCON_MODULE 0x28
  82. #define LOG_RTC_MODULE 0x38
  83. #define LOG_SELFTEST_MODULE 0x48
  84. #define LOG_SESSION_MODULE 0x58
  85. #define LOG_SETTINGS_MODULE 0x68
  86. #define LOG_SPIDRV_MODULE 0x78
  87. #define LOG_STREAMER_MODULE 0x88
  88. #define LOG_UART0DRIVER_MODULE 0x98
  89. #define LOG_UPDATE_MODULE 0xA8
  90. #define LOG_UTIL_MODULE 0xB8
  91. #define LOG_VERSION_MODULE 0xC8
  92. #define LOG_VS10XX_MODULE 0xD8
  93. #define LOG_WATCHDOG_MODULE 0xE8
  94. // note that LOG_MODULE must be defined before including this "log.h"
  95. #define LOG_EMERG (TLogLevel)(LOG_EMERG_LEV | LOG_MODULE)
  96. #define LOG_ALERT (TLogLevel)(LOG_ALERT_LEV | LOG_MODULE)
  97. #define LOG_CRIT (TLogLevel)(LOG_CRIT_LEV | LOG_MODULE)
  98. #define LOG_ERR (TLogLevel)(LOG_ERR_LEV | LOG_MODULE)
  99. #define LOG_WARNING (TLogLevel)(LOG_WARNING_LEV | LOG_MODULE)
  100. #define LOG_NOTICE (TLogLevel)(LOG_NOTICE_LEV | LOG_MODULE)
  101. #define LOG_INFO (TLogLevel)(LOG_INFO_LEV | LOG_MODULE)
  102. #define LOG_DEBUG (TLogLevel)(LOG_DEBUG_LEV | LOG_MODULE)
  103. /*--------------------------------------------------------------------------*/
  104. /* Global variables */
  105. /*--------------------------------------------------------------------------*/
  106. /*--------------------------------------------------------------------------*/
  107. /* Global functions */
  108. /*--------------------------------------------------------------------------*/
  109. extern void LogInit(void);
  110. extern void LogOpen(void);
  111. extern void LogClose(void);
  112. #ifndef LOG_RAW
  113. extern void LogMsg_P(TLogLevel tLevel, PGM_P szMsg, ...);
  114. extern void LogChar_P(const char bChar);
  115. #endif
  116. extern TLogLevel LogSetLevel(TLogLevel tLevel);
  117. extern void HexDump(FILE *stream, CONST unsigned char *cp, size_t length);
  118. #endif /* _Log_H */