frp/cmd/macFrp/log.go
2018-12-29 01:44:48 +08:00

57 lines
822 B
Go

package main
/*
#include <stdio.h>
typedef void (*LogListener)(const char* log);
LogListener logListener;
void setLogListener(LogListener l) {
logListener = l;
}
void callback(const char* log) {
if (logListener) {
logListener(log);
}
}
void cListener(const char* log) {
printf("%s", log);
}
void testLog() {
setLogListener(cListener);
}
*/
import "C"
import (
"time"
"github.com/fatedier/frp/utils/log"
)
var l logForMacListener
type logForMacListener struct {
log.LogListener
}
func (l *logForMacListener) Log(log string) {
C.callback(C.CString(log))
}
func (l *logForMacListener) Location() string {
location, _ := time.LoadLocation("Local")
return location.String()
}
func init() {
l = logForMacListener{}
log.AppendListener(&l)
}
func logLog() {
C.testLog()
println(C.logListener)
}