diff --git a/CHANGELOG b/CHANGELOG index 2eb1f0e..f572678 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,8 @@ proxy更新日志 +v5.4 +1.优化了获取本地IP信息导致CPU过高的问题. +2.所有服务都增加了--nolog参数,可以关闭日志输出,节省CPU. + v5.3 1.优化了socks_client握手端口判断,避免了sstap测试UDP失败的问题. diff --git a/config.go b/config.go index 4aeeb9a..00c56f9 100755 --- a/config.go +++ b/config.go @@ -4,6 +4,7 @@ import ( "bufio" "crypto/sha1" "fmt" + "io/ioutil" logger "log" "os" "os/exec" @@ -62,6 +63,7 @@ func initConfig() (err error) { daemon := app.Flag("daemon", "run proxy in background").Default("false").Bool() forever := app.Flag("forever", "run proxy in forever,fail and retry").Default("false").Bool() logfile := app.Flag("log", "log file path").Default("").String() + nolog := app.Flag("nolog", "turn off logging").Default("false").Bool() kcpArgs.Key = app.Flag("kcp-key", "pre-shared secret between client and server").Default("secrect").String() kcpArgs.Crypt = app.Flag("kcp-method", "encrypt/decrypt method, can be: aes, aes-128, aes-192, salsa20, blowfish, twofish, cast5, 3des, tea, xtea, xor, sm4, none").Default("aes").Enum("aes", "aes-128", "aes-192", "salsa20", "blowfish", "twofish", "cast5", "3des", "tea", "xtea", "xor", "sm4", "none") kcpArgs.Mode = app.Flag("kcp-mode", "profiles: fast3, fast2, fast, normal, manual").Default("fast").Enum("fast3", "fast2", "fast", "normal", "manual") @@ -352,7 +354,9 @@ func initConfig() (err error) { } log.SetFlags(flags) - if *logfile != "" { + if *nolog { + log.SetOutput(ioutil.Discard) + } else if *logfile != "" { f, e := os.OpenFile(*logfile, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0600) if e != nil { log.Fatal(e) diff --git a/sdk/android-ios/sdk.go b/sdk/android-ios/sdk.go index 55873e7..ec058e9 100644 --- a/sdk/android-ios/sdk.go +++ b/sdk/android-ios/sdk.go @@ -3,6 +3,7 @@ package proxy import ( "crypto/sha1" "fmt" + "io/ioutil" logger "log" "os" "path" @@ -77,6 +78,7 @@ func StartWithLog(serviceID, serviceArgsStr string, loggerCallback LogCallback) app.Author("snail").Version(SDK_VERSION) debug := app.Flag("debug", "debug log output").Default("false").Bool() logfile := app.Flag("log", "log file path").Default("").String() + nolog := app.Flag("nolog", "turn off logging").Default("false").Bool() kcpArgs.Key = app.Flag("kcp-key", "pre-shared secret between client and server").Default("secrect").String() kcpArgs.Crypt = app.Flag("kcp-method", "encrypt/decrypt method, can be: aes, aes-128, aes-192, salsa20, blowfish, twofish, cast5, 3des, tea, xtea, xor, sm4, none").Default("aes").Enum("aes", "aes-128", "aes-192", "salsa20", "blowfish", "twofish", "cast5", "3des", "tea", "xtea", "xor", "sm4", "none") kcpArgs.Mode = app.Flag("kcp-mode", "profiles: fast3, fast2, fast, normal, manual").Default("fast3").Enum("fast3", "fast2", "fast", "normal", "manual") @@ -357,7 +359,9 @@ func StartWithLog(serviceID, serviceArgsStr string, loggerCallback LogCallback) log.SetFlags(flags) if loggerCallback == nil { - if *logfile != "" { + if *nolog { + log.SetOutput(ioutil.Discard) + } else if *logfile != "" { f, e := os.OpenFile(*logfile, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0600) if e != nil { log.Fatal(e)