Skip to content

Commit 79a82f2

Browse files
committed
Trying to see 500 error log in prod
1 parent 0491187 commit 79a82f2

2 files changed

Lines changed: 27 additions & 10 deletions

File tree

cmd/main.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,11 @@ func main() {
5252
}
5353

5454
// Initialize Logger
55-
logger, err := pkg.NewLogger(os.Getenv("APP_ENV"))
55+
logLevel := os.Getenv("LOG_LEVEL")
56+
if logLevel == "" {
57+
logLevel = "info" // Default to info if not set
58+
}
59+
logger, err := pkg.NewLogger(os.Getenv("APP_ENV"), logLevel)
5660
if err != nil {
5761
log.Printf("[CRASH]: Logger initialization failed: %v", err)
5862
return

pkg/logger.go

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,33 +5,46 @@ import (
55
"github.com/rs/zerolog"
66
"io"
77
"os"
8+
"strings"
89
"time"
910
)
1011

1112
var Logger *zerolog.Logger
1213

13-
func NewLogger(env string) (zerolog.Logger, error) {
14+
func NewLogger(env string, logLevel string) (zerolog.Logger, error) {
1415
var output io.Writer
1516

1617
switch env {
1718
case "DEVELOPMENT":
18-
// Use a human-readable console writer for development
1919
output = zerolog.ConsoleWriter{
2020
Out: os.Stderr,
2121
TimeFormat: time.RFC3339,
2222
}
2323
case "PRODUCTION":
24-
// Use JSON output for production, which is machine-readable
25-
// and can be easily consumed by log aggregation systems.
26-
file, err := os.OpenFile("prod.log", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0666)
27-
if err != nil {
28-
return zerolog.Logger{}, err
29-
}
30-
output = file
24+
output = os.Stderr // For production, output to stderr by default. Consider file or other sink for actual deployments.
3125
default:
3226
return zerolog.Logger{}, fmt.Errorf("invalid environment for logger setup: %s (Allowed: DEVELOPMENT, PRODUCTION)", env)
3327
}
3428

3529
logger := zerolog.New(output).With().Timestamp().Logger()
30+
31+
// Set global log level
32+
switch strings.ToLower(logLevel) {
33+
case "debug":
34+
zerolog.SetGlobalLevel(zerolog.DebugLevel)
35+
case "info":
36+
zerolog.SetGlobalLevel(zerolog.InfoLevel)
37+
case "warn":
38+
zerolog.SetGlobalLevel(zerolog.WarnLevel)
39+
case "error":
40+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
41+
case "fatal":
42+
zerolog.SetGlobalLevel(zerolog.FatalLevel)
43+
case "panic":
44+
zerolog.SetGlobalLevel(zerolog.PanicLevel)
45+
default:
46+
zerolog.SetGlobalLevel(zerolog.InfoLevel) // Default to info level
47+
}
48+
3649
return logger, nil
3750
}

0 commit comments

Comments
 (0)