8000 Style Atmos Logger with Theme by Cerebrovinny · Pull Request #1135 · cloudposse/atmos · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Style Atmos Logger with Theme #1135

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 41 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
e54747d
Refactor logger setup, add styled logging
Cerebrovinny Mar 11, 2025
9309d1f
Update pkg/logger/logger.go
Cerebrovinny Mar 11, 2025
a25ed56
Update pkg/logger/logger.go
Cerebrovinny Mar 11, 2025
1c8a36f
Refactor logger: rename StyledLogger to AtmosLogger
Cerebrovinny Mar 11, 2025
3a026e3
Refine logger docstring for clarity
Cerebrovinny Mar 11, 2025
0dd18a2
Add LogLevelError; update log level handling logic
Cerebrovinny Mar 11, 2025
9dbefce
Add error log level; refactor error handling logic
Cerebrovinny Mar 11, 2025
12c4218
Merge branch 'main' into DEV-3010-atmos-logger-new
Cerebrovinny Mar 11, 2025
b3e0f76
Merge branch 'main' into DEV-3010-atmos-logger-new
osterman Mar 12, 2025
5923af5
Merge branch 'main' into DEV-3010-atmos-logger-new
aknysh Mar 12, 2025
c7fcd72
Merge branch 'main' into DEV-3010-atmos-logger-new
Cerebrovinny Mar 14, 2025
bc8e37e
Refactor logger: add validation, improve tests
Cerebrovinny Mar 15, 2025
4ed7257
Add default style for all keys in logger
Cerebrovinny Mar 15, 2025
4a98c4a
Update cmd/root.go
Cerebrovinny Mar 15, 2025
c62904f
Add custom error type, refactor file handling
Cerebrovinny Mar 16, 2025
684d91e
Refactor logger: simplify log levels, improve tests
Cerebrovinny Mar 16, 2025
52ad0f6
Refactor logger setup; fix config pointer usage
Cerebrovinny Mar 17, 2025
c9fa7cd
clean code
Cerebrovinny Mar 17, 2025
19b75f1
Merge branch 'main' into DEV-3010-atmos-logger-new
Cerebrovinny Mar 17, 2025
b27dc59
Merge branch 'main' into DEV-3010-atmos-logger-new
Cerebrovinny Mar 17, 2025
1b9fbe7
Fix log level handling, update tests, adjust padding
Cerebrovinny Mar 17, 2025
538f735
Improve error message formatting; use wrapped errors
Cerebrovinny Mar 17, 2025
555074e
Improve error message formatting in ParseLogLevel
Cerebrovinny Mar 17, 2025
b58ee5b
Remove unused File field from Logger struct
Cerebrovinny Mar 17, 2025
06f86a7
Refactor Logger to AtmosLogger, simplify struct usage
Cerebrovinny Mar 17, 2025
ede568a
Update logger type to AtmosLogger in cmd args
Cerebrovinny Mar 17, 2025
e371854
Update logger type to AtmosLogger in API client
Cerebrovinny Mar 17, 2025
1e19569
Merge remote-tracking branch 'origin/main' into DEV-3010-atmos-logger…
Cerebrovinny Mar 17, 2025
26ded14
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 17, 2025
13bb48a
Refactor logger: remove test func, rename Warning to Warn
Cerebrovinny Mar 18, 2025
4c1e4c2
Optimize valid log levels generation
Cerebrovinny Mar 18, 2025
cb40e1f
Remove redundant log output setting
Cerebrovinny Mar 18, 2025
58fc21e
Fix log level order in error messages
Cerebrovinny Mar 18, 2025
667b259
Revert "Fix log level order in error messages"
Cerebrovinny Mar 18, 2025
7b25bed
Simplified log level validation logic
Cerebrovinny Mar 18, 2025
ece8630
Improve logging: handle trace level, default to info
Cerebrovinny Mar 18, 2025
3a53501
Update log level from debug to trace in test snapshot
Cerebrovinny Mar 19, 2025
a8d1d6e
Sort log levels alphabetically; update test snapshots
Cerebrovinny Mar 19, 2025
fde8f5e
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 19, 2025
4820f56
Update cmd/root.go
Cerebrovinny Mar 19, 2025
d83e510
Revert "Update cmd/root.go"
Cerebrovinny Mar 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 36 additions & 18 deletions cmd/root.go
8000
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"regexp"
"strings"

"github.com/charmbracelet/log"
log "github.com/charmbracelet/log"
"github.com/elewis787/boa"
"github.com/spf13/cobra"

Expand Down Expand Up @@ -80,21 +80,7 @@
}

func setupLogger(atmosConfig *schema.AtmosConfiguration) {
switch atmosConfig.Logs.Level {
case "Trace":
log.SetLevel(log.DebugLevel)
case "Debug":
log.SetLevel(log.DebugLevel)
case "Info":
log.SetLevel(log.InfoLevel)
case "Warning":
log.SetLevel(log.WarnLevel)
case "Off":
log.SetLevel(math.MaxInt32)
default:
log.SetLevel(log.InfoLevel)
}

// Determine output writer based on configuration.
var output io.Writer

switch atmosConfig.Logs.File {
Expand All @@ -113,12 +99,44 @@
output = logFile
}

log.SetOutput(output)
atmosLogger := logger.NewAtmosLogger(output)

// Set the global log instance to our styled logger.
log.SetDefault(atmosLogger)

// Set the appropriate log level based on configuration.
switch atmosConfig.Logs.Level {
case "Trace":
atmosLogger.SetLevel(logger.AtmosTraceLevel)

Check warning on line 110 in cmd/root.go

View check run for this annotation

Codecov / codecov/patch

cmd/root.go#L109-L110

Added lines #L109 - L110 were not covered by tests
case "Debug":
atmosLogger.SetLevel(log.DebugLevel)
case "Info":
atmosLogger.SetLevel(log.InfoLevel)
case "Warning":
atmosLogger.SetLevel(log.WarnLevel)
case "Error":
atmosLogger.SetLevel(log.ErrorLevel)
case "Off":
atmosLogger.SetLevel(math.MaxInt32)
default:
atmosLogger.SetLevel(log.InfoLevel)

Check warning on line 122 in cmd/root.go

View check run for this annotation

Codecov / codecov/patch

cmd/root.go#L113-L122

Added lines #L113 - L122 were not covered by tests
}

if _, err := logger.ParseLogLevel(atmosConfig.Logs.Level); err != nil {
//nolint:all // The reason to escape this is because it is expected to fail fast. The reason for ignoring all is because we also get a lint error to execute defer logFile.Close() before this but that is not required
log.Fatal(err)
}
log.Debug("Set", "logs-level", log.GetLevel(), "logs-file", atmosConfig.Logs.File)
// Use the log level from config directly for consistent output
logLevelStr := strings.ToLower(atmosConfig.Logs.Level)
if logLevelStr == "" {
logLevelStr = "info" // Default value if not specified
}

Check warning on line 133 in cmd/root.go

View check run for this annotation

Codecov / codecov/patch

cmd/root.go#L132-L133

Added lines #L132 - L133 were not covered by tests

if strings.ToLower(atmosConfig.Logs.Level) == "trace" {
log.Log(logger.AtmosTraceLevel, "Set", "logs-level", logLevelStr, "logs-file", atmosConfig.Logs.File)

Check warning on line 136 in cmd/root.go

View check run for this annotation

Codecov / codecov/patch

cmd/root.go#L136

Added line #L136 was not covered by tests
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
log.Log(logger.AtmosTraceLevel, "Set", "logs-level", logLevelStr, "logs-file", atmosConfig.Logs.File)
log.Trace("Set", "logs-level", logLevelStr, "logs-file", atmosConfig.Logs.File)

} else {
log.Debug("Set", "logs-level", logLevelStr, "logs-file", atmosConfig.Logs.File)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here we use log.Debug, but in the logs we output TRCE

We should be consistent.

https://github.com/cloudposse/atmos/pull/1135/files#r2004173296

I'm okay changing it to Trace, but then we should have it be that consistently.

}
}

// Execute adds all child commands to the root command and sets flags appropriately.
Expand Down
6 changes: 3 additions & 3 deletions internal/exec/describe_affected.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
IncludeDependents bool
IncludeSettings bool
IncludeSpaceliftAdminStacks bool
Logger *l.Logger
Logger *l.AtmosLogger
OutputFile string
Ref string
RepoPath string
Expand All @@ -48,7 +48,7 @@
if err != nil {
return DescribeAffectedCmdArgs{}, err
}
logger, err := l.NewLoggerFromCliConfig(atmosConfig)
logger, err := l.NewLoggerFromCliConfig(&atmosConfig)

Check warning on line 51 in internal/exec/describe_affected.go

View check run for this annotation

Codecov / codecov/patch

internal/exec/describe_affected.go#L51

< 6D47 pre tabindex="0">
Added line #L51 was not covered by tests
if err != nil {
return DescribeAffectedCmdArgs{}, err
}
Expand Down Expand Up @@ -151,7 +151,7 @@

if verbose {
atmosConfig.Logs.Level = u.LogLevelTrace
err := logger.SetLogLevel(l.LogLevelTrace)
err := logger.SetLogLevel(l.AtmosTraceLevel)

Check warning on line 154 in internal/exec/describe_affected.go

View check run for this annotation

Codecov / codecov/patch

internal/exec/describe_affected.go#L154

Added line #L154 was not covered by tests
if err != nil {
return DescribeAffectedCmdArgs{}, err
}
Expand Down
4 changes: 2 additions & 2 deletions internal/exec/pro.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

type ProLockUnlockCmdArgs struct {
Component string
Logger *l.Logger
Logger *l.AtmosLogger
Stack string
}

Expand All @@ -39,7 +39,7 @@
return ProLockUnlockCmdArgs{}, err
}

logger, err := l.NewLoggerFromCliConfig(atmosConfig)
logger, err := l.NewLoggerFromCliConfig(&atmosConfig)

Check warning on line 42 in internal/exec/pro.go

View check run for this annotation

Codecov / codecov/patch

internal/exec/pro.go#L42

Added line #L42 was not covered by tests
if err != nil {
return ProLockUnlockCmdArgs{}, err
}
Expand Down
Loading
Loading
0