45 lines
1.0 KiB
Go
45 lines
1.0 KiB
Go
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()
|
|
}
|