diff --git a/go.mod b/go.mod index 4f80040..08743f0 100644 --- a/go.mod +++ b/go.mod @@ -18,6 +18,7 @@ require ( require ( github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect + gopkg.in/natefinch/lumberjack.v2 v2.2.1 gorm.io/driver/sqlite v1.5.5 gorm.io/gorm v1.25.10 ) diff --git a/go.sum b/go.sum index ea54529..cbebca8 100644 --- a/go.sum +++ b/go.sum @@ -27,6 +27,8 @@ golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= +gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= gorm.io/driver/sqlite v1.5.5 h1:7MDMtUZhV065SilG62E0MquljeArQZNfJnjd9i9gx3E= gorm.io/driver/sqlite v1.5.5/go.mod h1:6NgQ7sQWAIFsPrJJl1lSNSu2TABh0ZZ/zm5fosATavE= gorm.io/gorm v1.25.10 h1:dQpO+33KalOA+aFYGlK+EfxcI5MbO7EP2yYygwh9h+s= diff --git a/main.go b/main.go index f9c1850..d14863b 100644 --- a/main.go +++ b/main.go @@ -3,6 +3,7 @@ package main import ( "flag" "fmt" + "io" "net/http" "os" "os/exec" @@ -16,6 +17,7 @@ import ( "github.com/pablu23/mangaGetter/internal/server" "github.com/rs/zerolog" "github.com/rs/zerolog/log" + "gopkg.in/natefinch/lumberjack.v2" ) var ( @@ -30,6 +32,7 @@ var ( updateIntervalFlag = flag.String("update", "1h", "Interval to update Mangas") debugFlag = flag.Bool("debug", false, "Activate debug Logs") prettyLogsFlag = flag.Bool("pretty", false, "Pretty pring Logs") + logPathFlag = flag.String("log", "", "Path to logfile, stderr if default") ) func main() { @@ -46,6 +49,18 @@ func main() { zerolog.SetGlobalLevel(zerolog.DebugLevel) } + if *logPathFlag != "" { + var console io.Writer = os.Stderr + if *prettyLogsFlag { + console = zerolog.ConsoleWriter{Out: os.Stderr} + } + log.Logger = log.Output(zerolog.MultiLevelWriter(console, &lumberjack.Logger{ + Filename: *logPathFlag, + MaxAge: 14, + MaxBackups: 10, + })) + } + if *secretFlag != "" { secret = *secretFlag } else if *secretFilePathFlag != "" { diff --git a/test.log b/test.log new file mode 100644 index 0000000..6ce363c --- /dev/null +++ b/test.log @@ -0,0 +1,2 @@ +{"level":"info","Port":8080,"time":"2024-05-31T00:22:54+02:00","message":"Starting server"} +{"level":"debug","time":"2024-05-31T00:22:58+02:00","message":"Closing Database"}