From 85ebd0cb62325dbaf2b1835a98ee058dbe780142 Mon Sep 17 00:00:00 2001 From: haidy Date: Sat, 29 Dec 2018 01:44:48 +0800 Subject: [PATCH] add log function --- cmd/macFrp/frp.go | 13 +++++++++-- cmd/macFrp/log.go | 56 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 cmd/macFrp/log.go diff --git a/cmd/macFrp/frp.go b/cmd/macFrp/frp.go index f9641c5a..f6c5f476 100644 --- a/cmd/macFrp/frp.go +++ b/cmd/macFrp/frp.go @@ -1,10 +1,14 @@ package main /* - */ +typedef void (*LogListener) (const char* log); +extern void setLogListener(LogListener l); +*/ import "C" import ( + "os" + "github.com/fatedier/frp/cmd/frpc/sub" "github.com/fatedier/frp/cmd/frps/frps" "github.com/fatedier/frp/utils/version" @@ -44,9 +48,14 @@ func Version() string { } func main() { - // frpsPath := os.Args[2] + frpsPath := os.Args[2] // RunFrps(C.CString(frpsPath)) // TestFrps(C.CString(frpsPath)) + println(frpsPath) + logLog() + + RunFrps(C.CString(frpsPath)) + c := make(chan bool) <-c } diff --git a/cmd/macFrp/log.go b/cmd/macFrp/log.go new file mode 100644 index 00000000..a098f62a --- /dev/null +++ b/cmd/macFrp/log.go @@ -0,0 +1,56 @@ +package main + +/* +#include +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) +}