From 70443455dedac7f516a1ebc2bc4ed72bccfc3fbf Mon Sep 17 00:00:00 2001 From: xiaoyaofenfen <1254525673@qq.com> Date: Wed, 20 Apr 2022 09:49:16 +0800 Subject: [PATCH] fix javascript log bug --- internal/plugin/js_plugin.go | 11 +++++++---- internal/plugin/plugin_manager.go | 10 ++++++++-- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/internal/plugin/js_plugin.go b/internal/plugin/js_plugin.go index deed5e3..33b346c 100644 --- a/internal/plugin/js_plugin.go +++ b/internal/plugin/js_plugin.go @@ -4,6 +4,7 @@ import ( "fmt" "github.com/dop251/goja" "github.com/tickstep/library-go/logger" + "strings" ) type ( @@ -14,18 +15,20 @@ type ( } ) -func NewJsPlugin() *JsPlugin { +func NewJsPlugin(log *logger.CmdVerbose) *JsPlugin { return &JsPlugin{ Name: "JsPlugin", vm: nil, - logger: nil, + logger: log, } } // jsLog 支持js中的console.log方法 func jsLog(call goja.FunctionCall) goja.Value { str := call.Argument(0) - fmt.Print(str.String()) + buf := &strings.Builder{} + fmt.Fprintf(buf, "%+v", str.Export()) + logger.Verboseln(buf.String()) return str } @@ -39,7 +42,7 @@ func (js *JsPlugin) Start() error { console.Set("log", jsLog) js.vm.Set("console", console) - // 内置系统函数 + // 内置系统函数sys sysObj := js.vm.NewObject() sysObj.Set("httpGet", HttpGet) sysObj.Set("httpPost", HttpPost) diff --git a/internal/plugin/plugin_manager.go b/internal/plugin/plugin_manager.go index f972e3b..9e79f0a 100644 --- a/internal/plugin/plugin_manager.go +++ b/internal/plugin/plugin_manager.go @@ -2,6 +2,7 @@ package plugin import ( "fmt" + "github.com/tickstep/aliyunpan/internal/config" "github.com/tickstep/library-go/logger" "io/ioutil" "os" @@ -13,11 +14,15 @@ import ( type ( PluginManager struct { PluginPath string + log *logger.CmdVerbose } ) func NewPluginManager() *PluginManager { - return &PluginManager{} + return &PluginManager{ + PluginPath: "", + log: logger.New("PLUGIN", config.EnvVerbose), + } } func (p *PluginManager) SetPluginPath(pluginPath string) error { @@ -31,9 +36,10 @@ func (p *PluginManager) SetPluginPath(pluginPath string) error { func (p *PluginManager) GetPlugin() (Plugin, error) { // js plugin folder + // only support js plugin right now jsPluginPath := path.Clean(p.PluginPath + string(os.PathSeparator) + "js") if fi, err := os.Stat(jsPluginPath); err == nil && fi.IsDir() { - jsPlugin := NewJsPlugin() + jsPlugin := NewJsPlugin(p.log) if jsPlugin.Start() != nil { logger.Verbosef("初始化JS脚本错误\n") return interface{}(NewIdlePlugin()).(Plugin), nil