From 7011062c908b18a91c999fd146ca1296f276a377 Mon Sep 17 00:00:00 2001 From: HystericalDragon Date: Fri, 4 Oct 2024 09:08:11 +0800 Subject: [PATCH] feat: apply log level for logger --- .../java/io/nekohasekai/sagernet/SagerNet.kt | 2 +- libcore/libcore.go | 4 ++-- libcore/log.go | 17 ++++++++++------- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/io/nekohasekai/sagernet/SagerNet.kt b/app/src/main/java/io/nekohasekai/sagernet/SagerNet.kt index 44f2519b..fe2577c2 100644 --- a/app/src/main/java/io/nekohasekai/sagernet/SagerNet.kt +++ b/app/src/main/java/io/nekohasekai/sagernet/SagerNet.kt @@ -71,7 +71,7 @@ class SagerNet : Application(), filesDir.absolutePath + "/", externalAssets.absolutePath + "/", DataStore.logBufSize, - DataStore.logLevel > 0, + DataStore.logLevel, DataStore.rulesProvider == 0, ) Libcore.updateRootCACerts(DataStore.enabledCazilla) diff --git a/libcore/libcore.go b/libcore/libcore.go index 6ae71d6b..4a86ebc0 100644 --- a/libcore/libcore.go +++ b/libcore/libcore.go @@ -16,7 +16,7 @@ func Kill() { } func InitCore(process, cachePath, internalAssets, externalAssets string, - maxLogSizeKb int32, logEnable bool, + maxLogSizeKb int32, logLevel int32, useOfficialAssets bool, ) { defer catchPanic("InitCore", func(panicErr error) { log.Error(panicErr) }) @@ -30,7 +30,7 @@ func InitCore(process, cachePath, internalAssets, externalAssets string, if maxLogSizeKb < 50 { maxLogSizeKb = 50 } - _ = setupLog(int64(maxLogSizeKb)*1024, filepath.Join(externalAssets, "stderr.log"), logEnable, isBgProcess) + _ = setupLog(int64(maxLogSizeKb)*1024, filepath.Join(externalAssets, "stderr.log"), log.Level(logLevel), isBgProcess) // Set up some component go func() { diff --git a/libcore/log.go b/libcore/log.go index df323a9d..eaa976fa 100644 --- a/libcore/log.go +++ b/libcore/log.go @@ -36,7 +36,7 @@ func LogClear() { var platformLogWrapper *logWriter -func setupLog(maxSize int64, path string, enableLog, notTruncateOnStart bool) (err error) { +func setupLog(maxSize int64, path string, level log.Level, notTruncateOnStart bool) (err error) { if platformLogWrapper != nil { return } @@ -72,8 +72,8 @@ func setupLog(maxSize int64, path string, enableLog, notTruncateOnStart bool) (e } platformLogWrapper = &logWriter{ - disable: !enableLog, - writer: file, + level: level, + writer: file, } log.SetStdLogger(log.NewDefaultFactory( context.Background(), @@ -97,8 +97,8 @@ func setupLog(maxSize int64, path string, enableLog, notTruncateOnStart bool) (e var _ log.PlatformWriter = (*logWriter)(nil) type logWriter struct { - disable bool - writer io.Writer + level log.Level + writer io.Writer } func (w *logWriter) DisableColors() bool { @@ -107,14 +107,17 @@ func (w *logWriter) DisableColors() bool { const LogSplitFlag = "\n\n" -func (w *logWriter) WriteMessage(_ log.Level, message string) { +func (w *logWriter) WriteMessage(level log.Level, message string) { + if level > w.level { + return + } _, _ = io.WriteString(w.writer, LogSplitFlag+message) } var _ io.Writer = (*logWriter)(nil) func (w *logWriter) Write(p []byte) (n int, err error) { - if w.disable || w.writer == nil { + if w.writer == nil { return len(p), nil }