comment out
Some checks failed
Tests / Run on Ubuntu (push) Failing after 34s
Lint / Run on Ubuntu (push) Failing after 1m8s
Build images / Build docker image (push) Successful in 3m56s

This commit is contained in:
Chris Richardson
2025-07-02 23:28:01 -04:00
parent 076325f873
commit 74e203d611

View File

@@ -19,12 +19,17 @@ package main
import (
"crypto/tls"
"flag"
"log"
"os"
"path/filepath"
locustiov1alpha1 "git.lilpenguins.com/crichardson/locust-operator/api/v1alpha1"
"git.lilpenguins.com/crichardson/locust-operator/internal/controller"
"github.com/go-logr/logr"
"github.com/go-logr/zapr"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"gopkg.in/natefinch/lumberjack.v2"
"k8s.io/apimachinery/pkg/runtime"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
@@ -245,3 +250,37 @@ func main() {
os.Exit(1)
}
}
func CreateFileLogger(fileName string, logLevel zapcore.LevelEnabler) logr.Logger {
// Create file with desired permissions
file, err := os.OpenFile(fileName, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
log.Fatal(err)
}
defer func() {
if cerr := file.Close(); cerr != nil && err == nil {
err = cerr
}
}()
config := zap.NewProductionEncoderConfig()
config.EncodeTime = zapcore.ISO8601TimeEncoder
fileEncoder := zapcore.NewJSONEncoder(config)
consoleEncoder := zapcore.NewConsoleEncoder(config)
writer := zapcore.AddSync(&lumberjack.Logger{
Filename: fileName,
MaxSize: 1000, // MB
MaxBackups: 3,
MaxAge: 90, // days
Compress: false,
})
core := zapcore.NewTee(
zapcore.NewCore(fileEncoder, writer, logLevel),
zapcore.NewCore(consoleEncoder, zapcore.AddSync(os.Stdout), logLevel),
)
logger := zap.New(core, zap.AddCaller(), zap.AddStacktrace(zapcore.ErrorLevel))
return zapr.NewLogger(logger)
}