summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
Diffstat (limited to 'client')
-rw-r--r--client/client.go39
-rw-r--r--client/fsm.go4
2 files changed, 26 insertions, 17 deletions
diff --git a/client/client.go b/client/client.go
index 6c905ca..ea5b2b9 100644
--- a/client/client.go
+++ b/client/client.go
@@ -6,6 +6,8 @@ package client
import (
"context"
"errors"
+ "log/slog"
+ "os"
"sync"
"time"
@@ -46,6 +48,9 @@ type Client struct {
// tokenCacher
tokCacher TokenCacher
+ // logf is the log file
+ logf *os.File
+
// cfg is the config
cfg *config.Config
@@ -101,7 +106,7 @@ func (c *Client) goTransition(id fsm.StateID) error {
return i18nerr.WrapInternal(err, "state transition error")
}
if !handled {
- log.Logger.Debugf("transition not handled by the client to internal state: '%s'", GetStateName(id))
+ slog.Debug("transition not handled by the client to internal state", "state", GetStateName(id))
}
return nil
}
@@ -126,14 +131,16 @@ func New(name string, version string, directory string, stateCallback func(FSMSt
}
// Initialize the logger
- lvl := log.LevelInfo
+ lvl := slog.LevelInfo
if debug {
- lvl = log.LevelDebug
+ lvl = slog.LevelDebug
}
- if err = log.Logger.Init(lvl, directory); err != nil {
+ logf, err := log.Init(lvl, directory)
+ if err != nil {
return nil, i18nerr.WrapInternalf(err, "The log file with directory: '%s' failed to initialize", directory)
}
+ c.logf = logf
// set client name
c.Name = name
@@ -207,7 +214,7 @@ func (c *Client) AuthDone(id string, t srvtypes.Type) {
}
_, err = c.FSM.GoTransition(StateMain)
if err != nil {
- log.Logger.Debugf("unhandled auth done main transition: %v", err)
+ slog.Debug("unhandled auth done transition", "error", err)
}
c.TrySave()
}
@@ -222,7 +229,7 @@ func (c *Client) TokensUpdated(id string, t srvtypes.Type, tok eduoauth.Token) {
// Set the memory
err := c.tokCacher.Set(id, t, tok)
if err != nil {
- log.Logger.Warningf("failed to set tokens into cache with error: %v", err)
+ slog.Warn("failed to set tokens in cache", "error", err)
}
if c.TokenSetter == nil {
@@ -256,11 +263,13 @@ func (c *Client) Deregister() {
// Move the state machine back
_, err := c.FSM.GoTransition(StateDeregistered)
if err != nil {
- log.Logger.Debugf("failed deregistered transition: %v", err)
+ slog.Debug("failed deregistered transition", "error", err)
}
// Close the log file
- _ = log.Logger.Close()
+ if c.logf != nil {
+ _ = c.logf.Close()
+ }
release()
// Empty out the state
@@ -316,14 +325,14 @@ func (c *Client) locationCallback(ck *cookie.Cookie, orgID string) error {
// TrySave tries to save the internal state file
// If an error occurs it logs it
func (c *Client) TrySave() {
- log.Logger.Debugf("saving state file")
+ slog.Debug("saving state file")
if c.cfg == nil {
- log.Logger.Warningf("no state file to save")
+ slog.Warn("no state file to save")
return
}
err := c.cfg.Save()
if err != nil {
- log.Logger.Warningf("failed to save state file: %v", err)
+ slog.Warn("failed to save state file", "error", err)
}
}
@@ -429,12 +438,12 @@ func (c *Client) GetConfig(ck *cookie.Cookie, identifier string, _type srvtypes.
}
err = c.GettingConfig()
if err != nil {
- log.Logger.Debugf("failed getting config transition: %v", err)
+ slog.Debug("failed getting config transition", "error", err)
}
tok, err := c.retrieveTokens(identifier, _type)
if err != nil {
- log.Logger.Debugf("no tokens found for server: '%s', with error: '%v'", identifier, err)
+ slog.Debug("no tokens found for server", "server", identifier, "error", err)
}
ctx := ck.Context()
@@ -443,7 +452,7 @@ func (c *Client) GetConfig(ck *cookie.Cookie, identifier string, _type srvtypes.
// make sure the servers are fetched fresh
_, _, dserverr := disco.Servers(ctx)
if dserverr != nil {
- log.Logger.Warningf("failed to fetch server discovery when getting config: %v", dserverr)
+ slog.Warn("failed to fetch server discovery when getting config", "error", dserverr)
}
release()
}
@@ -457,7 +466,7 @@ func (c *Client) GetConfig(ck *cookie.Cookie, identifier string, _type srvtypes.
// make sure the organizations are fetched if they need an update
_, _, dorgerr := disco.Organizations(ctx)
if dorgerr != nil {
- log.Logger.Warningf("failed to fetch organization discovery when getting config: %v", dorgerr)
+ slog.Warn("failed to fetch organization discovery when getting config", "error", dorgerr)
}
release()
srv, err = c.Servers.GetSecure(ctx, identifier, c.discoMan, tok, startup)
diff --git a/client/fsm.go b/client/fsm.go
index d22f947..6fffc8a 100644
--- a/client/fsm.go
+++ b/client/fsm.go
@@ -2,10 +2,10 @@ package client
import (
"fmt"
+ "log/slog"
"codeberg.org/eduVPN/eduvpn-common/i18nerr"
"codeberg.org/eduVPN/eduvpn-common/internal/fsm"
- "codeberg.org/eduVPN/eduvpn-common/internal/log"
)
type (
@@ -182,7 +182,7 @@ func (c *Client) SetState(state FSMStateID) error {
if err != nil {
// self-transitions are only debug errors
if c.FSM.InState(state) {
- log.Logger.Debugf("attempt an invalid self-transition: %s", c.FSM.GetStateName(state))
+ slog.Debug("attempt at an invalid self-transition", "transition", c.FSM.GetStateName(state))
return nil
}
return i18nerr.WrapInternalf(err, "Failed internal state transition requested by the client from: '%s' to '%s'", GetStateName(curr), GetStateName(state))