| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- package main
- import (
- "bytes"
- "fmt"
- log "github.com/sirupsen/logrus"
- "os"
- "pmail/config"
- "pmail/cron_server"
- "pmail/res_init"
- "pmail/utils/context"
- "time"
- )
- type logFormatter struct {
- }
- // Format 定义日志输出格式
- func (l *logFormatter) Format(entry *log.Entry) ([]byte, error) {
- b := bytes.Buffer{}
- b.WriteString(fmt.Sprintf("[%s]", entry.Level.String()))
- b.WriteString(fmt.Sprintf("[%s]", entry.Time.Format("2006-01-02 15:04:05")))
- if entry.Context != nil {
- ctx := entry.Context.(*context.Context)
- if ctx != nil {
- b.WriteString(fmt.Sprintf("[%s]", ctx.GetValue(context.LogID)))
- }
- }
- b.WriteString(fmt.Sprintf("[%s:%d]", entry.Caller.File, entry.Caller.Line))
- b.WriteString(entry.Message)
- b.WriteString("\n")
- return b.Bytes(), nil
- }
- var (
- gitHash string
- buildTime string
- goVersion string
- )
- func main() {
- // 设置日志格式为json格式
- log.SetFormatter(&logFormatter{})
- log.SetReportCaller(true)
- // 设置将日志输出到标准输出(默认的输出为stderr,标准错误)
- // 日志消息输出可以是任意的io.writer类型
- log.SetOutput(os.Stdout)
- var cst, _ = time.LoadLocation("Asia/Shanghai")
- time.Local = cst
- config.Init()
- if config.Instance != nil {
- switch config.Instance.LogLevel {
- case "":
- log.SetLevel(log.InfoLevel)
- case "debug":
- log.SetLevel(log.DebugLevel)
- case "info":
- log.SetLevel(log.InfoLevel)
- case "warn":
- log.SetLevel(log.WarnLevel)
- case "error":
- log.SetLevel(log.ErrorLevel)
- default:
- log.SetLevel(log.InfoLevel)
- }
- } else {
- log.SetLevel(log.InfoLevel)
- }
- log.Infoln("***************************************************")
- log.Infof("***\tServer Start Success Version:%s\n", config.Version)
- log.Infof("***\tGit Commit Hash: %s ", gitHash)
- log.Infof("***\tBuild TimeStamp: %s ", buildTime)
- log.Infof("***\tBuild GoLang Version: %s ", goVersion)
- log.Infoln("***************************************************")
- // 定时任务启动
- go cron_server.Start()
- // 核心服务启动
- res_init.Init()
- s := make(chan bool)
- <-s
- }
|