package main import ( "os" "playback-device-server/users" "github.com/rs/zerolog" "github.com/rs/zerolog/log" ) const USER_DATABASE_DIR = "." func main() { initializeLogger() log.Info().Msg("starting playback device server") userDatabase := users.UserDatabase{} userDatabase.SetDirectory(USER_DATABASE_DIR) err := userDatabase.Initialize() if err != nil { log.Error().Err(err).Msg("failed to initialize user database") os.Exit(1) } defer userDatabase.Close() userManager := users.UserManager{} err = userManager.Initialize(&userDatabase) if err != nil { log.Error().Err(err).Msg("failed to initialize user manager") } } func initializeLogger() { zerolog.TimeFieldFormat = zerolog.TimeFormatUnixMs file, err := os.OpenFile("app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) if err != nil { log.Printf("failed to open log file: %v", err) } consoleWriter := zerolog.ConsoleWriter{Out: os.Stdout} multi := zerolog.MultiLevelWriter(consoleWriter, file) log.Logger = zerolog.New(multi).With().Timestamp().Logger() }