gliblog.go 654 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package gliblog
  2. /*
  3. #cgo pkg-config: glib-2.0
  4. #include "gliblog.h"
  5. */
  6. import "C"
  7. import log "github.com/sirupsen/logrus"
  8. //export logGLib
  9. func logGLib(cdomain *C.char, logLevel C.GLogLevelFlags, cstr *C.char) {
  10. str := C.GoString(cstr)
  11. var domain string
  12. if cdomain != nil {
  13. domain = C.GoString(cdomain)
  14. }
  15. if len(domain) == 0 {
  16. domain = "GLib"
  17. }
  18. entry := log.WithField("source", domain)
  19. switch logLevel {
  20. case C.G_LOG_LEVEL_DEBUG:
  21. entry.Debug(str)
  22. case C.G_LOG_LEVEL_INFO, C.G_LOG_LEVEL_MESSAGE:
  23. entry.Info(str)
  24. case C.G_LOG_LEVEL_WARNING:
  25. entry.Warn(str)
  26. default:
  27. entry.Error(str)
  28. }
  29. }
  30. func Init() {
  31. C.glib_log_configure()
  32. }