So I just figured out how to get my log messages from a system Golang program into the android log without the need for logwrapper.
It is a side effect of importing the “app” mobile package. so…
import ( _ "golang.org/x/mobile/app" )
The downside is that *everything* written via stdout will go to the system log – even flag.Usage()
If you want to go a little more serious, here is a nice chunk of code
package main
/*
#cgo LDFLAGS: -llog
#include <android/log.h>
#include <string.h>
*/
import "C"
import "unsafe"
func writeAndroidLogInfo(tag, message string) {
ctag := C.CString(tag)
cstr := C.CString(message)
C.__android_log_write(C.ANDROID_LOG_INFO, ctag, cstr)
C.free(unsafe.Pointer(ctag))
C.free(unsafe.Pointer(cstr))
}
You can use it like so
writeAndroidLogInfo("MyIdentifier", "My Message")
and the output in logcat will be
I/MyIdentifier( 4444): My Message