mirror of
https://github.com/router-for-me/CLIProxyAPI.git
synced 2026-02-03 04:50:52 +08:00
Merge pull request #68 from router-for-me/log
refactor(logging): Improve client loading and registration logs
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
|||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Separator used to visually group related log lines.
|
||||||
var credentialSeparator = strings.Repeat("-", 70)
|
var credentialSeparator = strings.Repeat("-", 70)
|
||||||
|
|
||||||
// LogSavingCredentials emits a consistent log message when persisting auth material.
|
// LogSavingCredentials emits a consistent log message when persisting auth material.
|
||||||
@@ -21,5 +22,5 @@ func LogSavingCredentials(path string) {
|
|||||||
|
|
||||||
// LogCredentialSeparator adds a visual separator to group auth/key processing logs.
|
// LogCredentialSeparator adds a visual separator to group auth/key processing logs.
|
||||||
func LogCredentialSeparator() {
|
func LogCredentialSeparator() {
|
||||||
log.Info(credentialSeparator)
|
log.Debug(credentialSeparator)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
misc "github.com/router-for-me/CLIProxyAPI/v6/internal/misc"
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -148,6 +149,8 @@ func (r *ModelRegistry) RegisterClient(clientID, clientProvider string, models [
|
|||||||
delete(r.clientProviders, clientID)
|
delete(r.clientProviders, clientID)
|
||||||
}
|
}
|
||||||
log.Debugf("Registered client %s from provider %s with %d models", clientID, clientProvider, len(models))
|
log.Debugf("Registered client %s from provider %s with %d models", clientID, clientProvider, len(models))
|
||||||
|
// Separator at the end of the registration block (acts as boundary to next group)
|
||||||
|
misc.LogCredentialSeparator()
|
||||||
}
|
}
|
||||||
|
|
||||||
// UnregisterClient removes a client and decrements counts for its models
|
// UnregisterClient removes a client and decrements counts for its models
|
||||||
@@ -207,6 +210,8 @@ func (r *ModelRegistry) unregisterClientInternal(clientID string) {
|
|||||||
delete(r.clientProviders, clientID)
|
delete(r.clientProviders, clientID)
|
||||||
}
|
}
|
||||||
log.Debugf("Unregistered client %s", clientID)
|
log.Debugf("Unregistered client %s", clientID)
|
||||||
|
// Separator line after completing client unregistration (after the summary line)
|
||||||
|
misc.LogCredentialSeparator()
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetModelQuotaExceeded marks a model as quota exceeded for a specific client
|
// SetModelQuotaExceeded marks a model as quota exceeded for a specific client
|
||||||
|
|||||||
@@ -561,8 +561,7 @@ func (w *Watcher) reloadClients() {
|
|||||||
|
|
||||||
w.refreshAuthState()
|
w.refreshAuthState()
|
||||||
|
|
||||||
log.Infof("full client reload complete - old: %d clients, new: %d clients (%d auth files + %d GL API keys + %d Claude API keys + %d Codex keys + %d OpenAI-compat)",
|
log.Infof("full client load complete - %d clients (%d auth files + %d GL API keys + %d Claude API keys + %d Codex keys + %d OpenAI-compat)",
|
||||||
0,
|
|
||||||
totalNewClients,
|
totalNewClients,
|
||||||
authFileCount,
|
authFileCount,
|
||||||
glAPIKeyCount,
|
glAPIKeyCount,
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ import (
|
|||||||
"github.com/router-for-me/CLIProxyAPI/v6/internal/registry"
|
"github.com/router-for-me/CLIProxyAPI/v6/internal/registry"
|
||||||
"github.com/router-for-me/CLIProxyAPI/v6/internal/runtime/executor"
|
"github.com/router-for-me/CLIProxyAPI/v6/internal/runtime/executor"
|
||||||
_ "github.com/router-for-me/CLIProxyAPI/v6/internal/usage"
|
_ "github.com/router-for-me/CLIProxyAPI/v6/internal/usage"
|
||||||
"github.com/router-for-me/CLIProxyAPI/v6/internal/util"
|
|
||||||
"github.com/router-for-me/CLIProxyAPI/v6/internal/watcher"
|
"github.com/router-for-me/CLIProxyAPI/v6/internal/watcher"
|
||||||
sdkaccess "github.com/router-for-me/CLIProxyAPI/v6/sdk/access"
|
sdkaccess "github.com/router-for-me/CLIProxyAPI/v6/sdk/access"
|
||||||
_ "github.com/router-for-me/CLIProxyAPI/v6/sdk/access/providers/configapikey"
|
_ "github.com/router-for-me/CLIProxyAPI/v6/sdk/access/providers/configapikey"
|
||||||
@@ -382,17 +381,6 @@ func (s *Service) Run(ctx context.Context) error {
|
|||||||
log.Infof("core auth auto-refresh started (interval=%s)", interval)
|
log.Infof("core auth auto-refresh started (interval=%s)", interval)
|
||||||
}
|
}
|
||||||
|
|
||||||
authFileCount := util.CountAuthFiles(s.cfg.AuthDir)
|
|
||||||
totalNewClients := authFileCount + apiKeyResult.GeminiKeyCount + apiKeyResult.ClaudeKeyCount + apiKeyResult.CodexKeyCount + apiKeyResult.OpenAICompatCount
|
|
||||||
log.Infof("full client load complete - %d clients (%d auth files + %d GL API keys + %d Claude API keys + %d Codex keys + %d OpenAI-compat)",
|
|
||||||
totalNewClients,
|
|
||||||
authFileCount,
|
|
||||||
apiKeyResult.GeminiKeyCount,
|
|
||||||
apiKeyResult.ClaudeKeyCount,
|
|
||||||
apiKeyResult.CodexKeyCount,
|
|
||||||
apiKeyResult.OpenAICompatCount,
|
|
||||||
)
|
|
||||||
|
|
||||||
select {
|
select {
|
||||||
case <-ctx.Done():
|
case <-ctx.Done():
|
||||||
log.Debug("service context cancelled, shutting down...")
|
log.Debug("service context cancelled, shutting down...")
|
||||||
|
|||||||
Reference in New Issue
Block a user