2023-04-06 13:46:19 +08:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"film/config"
|
|
|
|
"film/model"
|
|
|
|
"film/worker"
|
|
|
|
"fmt"
|
|
|
|
rotatelogs "github.com/lestrrat-go/file-rotatelogs"
|
|
|
|
"github.com/rifflock/lfshook"
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
|
|
"github.com/smbrave/goutil"
|
|
|
|
"os"
|
|
|
|
"time"
|
|
|
|
)
|
|
|
|
|
|
|
|
func initLog() {
|
|
|
|
cfg := config.GetConfig()
|
|
|
|
logfile := "log/server.log"
|
|
|
|
writer, err := rotatelogs.New(
|
|
|
|
logfile+".%Y%m%d",
|
|
|
|
rotatelogs.WithLinkName(logfile),
|
|
|
|
rotatelogs.WithMaxAge(time.Duration(86400*7)*time.Second),
|
|
|
|
rotatelogs.WithRotationTime(time.Duration(86400)*time.Second),
|
|
|
|
)
|
|
|
|
if err != nil {
|
|
|
|
panic(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
pathMap := lfshook.WriterMap{
|
|
|
|
log.TraceLevel: writer,
|
|
|
|
log.DebugLevel: writer,
|
|
|
|
log.InfoLevel: writer,
|
|
|
|
log.WarnLevel: writer,
|
|
|
|
log.ErrorLevel: writer,
|
|
|
|
log.FatalLevel: writer,
|
|
|
|
log.PanicLevel: writer,
|
|
|
|
}
|
|
|
|
|
|
|
|
log.AddHook(lfshook.NewHook(pathMap, new(goutil.LogFile)))
|
|
|
|
|
|
|
|
log.SetOutput(os.Stdout)
|
|
|
|
log.SetReportCaller(true)
|
|
|
|
log.SetFormatter(new(goutil.LogFile))
|
|
|
|
log.SetLevel(log.Level(cfg.Server.LogLevel))
|
|
|
|
}
|
2023-04-06 13:54:59 +08:00
|
|
|
|
2023-04-06 13:46:19 +08:00
|
|
|
func main() {
|
|
|
|
config.LoadServerConfig()
|
|
|
|
initLog()
|
|
|
|
cfg := config.GetConfig()
|
|
|
|
dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s", cfg.Mysql.User,
|
|
|
|
cfg.Mysql.Pass, cfg.Mysql.Host, cfg.Mysql.Port, cfg.Mysql.Db)
|
|
|
|
_, err := model.Init(dsn)
|
|
|
|
if err != nil {
|
|
|
|
panic(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
w := &worker.Worker{
|
|
|
|
Token: config.GetConfig().Film.Token,
|
|
|
|
}
|
|
|
|
w.Init()
|
|
|
|
select {}
|
|
|
|
}
|