diff --git a/logger/logger.go b/logger/logger.go index f033de9..28cac91 100644 --- a/logger/logger.go +++ b/logger/logger.go @@ -2,6 +2,7 @@ package logger import ( "fmt" + "io" "log" "os" "sync" @@ -48,6 +49,11 @@ func (l *Logger) SetLevel(level LogLevel) { l.level = level } +// SetOutput sets the output destination for the logger +func (l *Logger) SetOutput(w io.Writer) { + l.logger.SetOutput(w) +} + // log handles the actual logging func (l *Logger) log(level LogLevel, format string, args ...interface{}) { if level < l.level { @@ -120,3 +126,8 @@ func Error(format string, args ...interface{}) { func Fatal(format string, args ...interface{}) { GetLogger().Fatal(format, args...) } + +// SetOutput sets the output destination for the default logger +func SetOutput(w io.Writer) { + GetLogger().SetOutput(w) +} diff --git a/websocket/config.go b/websocket/config.go index 0ff5411..4b1e5e0 100644 --- a/websocket/config.go +++ b/websocket/config.go @@ -8,15 +8,16 @@ import ( "runtime" ) -func getConfigPath() string { +func getConfigPath(clientType string) string { var configDir string switch runtime.GOOS { case "darwin": - configDir = filepath.Join(os.Getenv("HOME"), "Library", "Application Support", "newt-client") + configDir = filepath.Join(os.Getenv("HOME"), "Library", "Application Support", clientType+"-client") case "windows": - configDir = filepath.Join(os.Getenv("APPDATA"), "newt-client") + logDir := filepath.Join(os.Getenv("PROGRAMDATA"), "olm") + configDir = filepath.Join(logDir, clientType+"-client") default: // linux and others - configDir = filepath.Join(os.Getenv("HOME"), ".config", "newt-client") + configDir = filepath.Join(os.Getenv("HOME"), ".config", clientType+"-client") } if err := os.MkdirAll(configDir, 0755); err != nil { @@ -31,7 +32,7 @@ func (c *Client) loadConfig() error { return nil } - configPath := getConfigPath() + configPath := getConfigPath(c.clientType) data, err := os.ReadFile(configPath) if err != nil { if os.IsNotExist(err) { @@ -63,7 +64,7 @@ func (c *Client) loadConfig() error { } func (c *Client) saveConfig() error { - configPath := getConfigPath() + configPath := getConfigPath(c.clientType) data, err := json.MarshalIndent(c.config, "", " ") if err != nil { return err