|
@@ -4,6 +4,7 @@ package log
|
|
|
|
|
|
|
|
import (
|
|
import (
|
|
|
"context"
|
|
"context"
|
|
|
|
|
+ "runtime"
|
|
|
"sync"
|
|
"sync"
|
|
|
|
|
|
|
|
"v2ray.com/core/common"
|
|
"v2ray.com/core/common"
|
|
@@ -30,6 +31,18 @@ func New(ctx context.Context, config *Config) (*Instance, error) {
|
|
|
return g, nil
|
|
return g, nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+func isMobile() bool {
|
|
|
|
|
+ return runtime.GOOS == "android" || (runtime.GOOS == "darwin" && (runtime.GOARCH == "arm" || runtime.GOARCH == "arm64"))
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func createStdLogWriter() log.WriterCreator {
|
|
|
|
|
+ if isMobile() {
|
|
|
|
|
+ return log.CreateDefaultLogWriter()
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return log.CreateStdoutLogWriter()
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
func (g *Instance) initAccessLogger() error {
|
|
func (g *Instance) initAccessLogger() error {
|
|
|
switch g.config.AccessLogType {
|
|
switch g.config.AccessLogType {
|
|
|
case LogType_File:
|
|
case LogType_File:
|
|
@@ -39,7 +52,7 @@ func (g *Instance) initAccessLogger() error {
|
|
|
}
|
|
}
|
|
|
g.accessLogger = log.NewLogger(creator)
|
|
g.accessLogger = log.NewLogger(creator)
|
|
|
case LogType_Console:
|
|
case LogType_Console:
|
|
|
- g.accessLogger = log.NewLogger(log.CreateStdoutLogWriter())
|
|
|
|
|
|
|
+ g.accessLogger = log.NewLogger(createStdLogWriter())
|
|
|
default:
|
|
default:
|
|
|
}
|
|
}
|
|
|
return nil
|
|
return nil
|
|
@@ -54,7 +67,7 @@ func (g *Instance) initErrorLogger() error {
|
|
|
}
|
|
}
|
|
|
g.errorLogger = log.NewLogger(creator)
|
|
g.errorLogger = log.NewLogger(creator)
|
|
|
case LogType_Console:
|
|
case LogType_Console:
|
|
|
- g.errorLogger = log.NewLogger(log.CreateStdoutLogWriter())
|
|
|
|
|
|
|
+ g.errorLogger = log.NewLogger(createStdLogWriter())
|
|
|
default:
|
|
default:
|
|
|
}
|
|
}
|
|
|
return nil
|
|
return nil
|