mono-log-android.c 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. /**
  2. * \file
  3. * Android-specific interface to the logger
  4. *
  5. * This module contains the Android logcat logger interface
  6. *
  7. * Author:
  8. * Marek Habersack <grendel@twistedcode.net>
  9. *
  10. */
  11. #include <config.h>
  12. #if defined (HOST_ANDROID)
  13. #include <android/log.h>
  14. #include "mono-logger-internals.h"
  15. /**
  16. * mono_log_open_logcat:
  17. * \param path Unused
  18. * \param userData Unused
  19. * Open access to Android logcat (no-op)
  20. */
  21. void
  22. mono_log_open_logcat (const char *path, void *userData)
  23. {
  24. /* No-op on Android */
  25. }
  26. /**
  27. * mono_log_write_logcat:
  28. * \param domain Identifier string
  29. * \param level Logging level flags
  30. * \param format \c printf format string
  31. * \param vargs Variable argument list
  32. * Write data to Android logcat.
  33. */
  34. void
  35. mono_log_write_logcat (const char *log_domain, GLogLevelFlags level, mono_bool hdr, const char *message)
  36. {
  37. android_LogPriority apriority;
  38. switch (level & G_LOG_LEVEL_MASK)
  39. {
  40. case G_LOG_LEVEL_ERROR:
  41. apriority = ANDROID_LOG_FATAL;
  42. break;
  43. case G_LOG_LEVEL_CRITICAL:
  44. apriority = ANDROID_LOG_ERROR;
  45. break;
  46. case G_LOG_LEVEL_WARNING:
  47. apriority = ANDROID_LOG_WARN;
  48. break;
  49. case G_LOG_LEVEL_MESSAGE:
  50. apriority = ANDROID_LOG_INFO;
  51. break;
  52. case G_LOG_LEVEL_INFO:
  53. apriority = ANDROID_LOG_DEBUG;
  54. break;
  55. case G_LOG_LEVEL_DEBUG:
  56. apriority = ANDROID_LOG_VERBOSE;
  57. break;
  58. default:
  59. apriority = ANDROID_LOG_UNKNOWN;
  60. break;
  61. }
  62. __android_log_write (apriority, log_domain, message);
  63. if (apriority == ANDROID_LOG_FATAL)
  64. g_assert_abort ();
  65. }
  66. /**
  67. * mono_log_close_logcat
  68. *
  69. * Close access to Android logcat (no-op)
  70. */
  71. void
  72. mono_log_close_logcat ()
  73. {
  74. /* No-op on Android */
  75. }
  76. #else
  77. #include <mono/utils/mono-compiler.h>
  78. MONO_EMPTY_SOURCE_FILE (mono_log_android);
  79. #endif