main.go 1.29 KB
Newer Older
Jisan Ahmed's avatar
Jisan Ahmed committed
package main

import (
	_ "TodoWithORM/routers"
	"log"
	"github.com/beego/beego/orm"
	"github.com/beego/beego/v2/core/logs"
	"github.com/beego/beego/v2/server/web"
	_ "github.com/go-sql-driver/mysql"
)

// dbConnection establishes a connection to the database.
	func dbConnection() {
		sqlconn, err := web.AppConfig.String("sqlconn")
		if err != nil {
			logs.Error("Failed to retrieve SQL connection string from config: %v", err)
			log.Fatal(err)
			return
		}

		err = orm.RegisterDataBase("default", "mysql", sqlconn)
		if err != nil {
			logs.Error("Failed to register database: %v", err)
			return
		}

		logs.Info("Database connection established successfully")
	}

// init initializes the database connection and logging settings.
func init() {
	logs.Info("Starting database connection setup...")

	err := orm.RegisterDriver("mysql", orm.DRMySQL)
	if err != nil {
		logs.Error("Failed to register MySQL driver: %v", err)
		return
	}

	dbConnection()

	// Configure logging
	logConfig := `{"filename":"error.log","perm":"777","level":7,"maxlines":0,"maxsize":0,"daily":true,"maxdays":10,"color":true}`
	err = logs.SetLogger(logs.AdapterFile, logConfig)
	if err != nil {
		logs.Error("Failed to configure logging: %v", err)
		return
	}

	logs.Info("Logging configured successfully")
}

func main() {

	web.Run()
}