Set GLib log handler

This commit is contained in:
DarthSim
2022-07-29 15:16:24 +06:00
parent cd5c30fa0d
commit a9dda9ca4e
4 changed files with 70 additions and 0 deletions

38
gliblog/gliblog.go Normal file
View File

@@ -0,0 +1,38 @@
package gliblog
/*
#cgo pkg-config: glib-2.0
#include "gliblog.h"
*/
import "C"
import log "github.com/sirupsen/logrus"
//export logGLib
func logGLib(cdomain *C.char, logLevel C.GLogLevelFlags, cstr *C.char) {
str := C.GoString(cstr)
var domain string
if cdomain != nil {
domain = C.GoString(cdomain)
}
if len(domain) == 0 {
domain = "GLib"
}
entry := log.WithField("source", domain)
switch logLevel {
case C.G_LOG_LEVEL_DEBUG:
entry.Debug(str)
case C.G_LOG_LEVEL_INFO, C.G_LOG_LEVEL_MESSAGE:
entry.Info(str)
case C.G_LOG_LEVEL_WARNING:
entry.Warn(str)
default:
entry.Error(str)
}
}
func Init() {
C.glib_log_configure()
}