mirror of
https://github.com/WJQSERVER-STUDIO/ghproxy.git
synced 2026-02-03 00:01:10 +08:00
2.1.0 (#47)
2.1.0 --- - RELEASE: v2.1.0正式版发布; - CHANGE: 加入`FreeBSD`与`Darwin`系统支持 - CHANGE: 更新安全政策, v1和24w版本序列生命周期正式结束 - ADD: 加入`timing`中间件记录响应时间 - ADD: 加入`loggin`中间件包装日志输出 - CHANGE: 更新logger版本至v1.3.0 - CHANGE: 改进日志相关 - ADD: 加入日志等级配置项
This commit is contained in:
parent
f5c32915b9
commit
09163ed4df
26 changed files with 296 additions and 44 deletions
40
main.go
40
main.go
|
|
@ -6,15 +6,16 @@ import (
|
|||
"fmt"
|
||||
"io"
|
||||
"io/fs"
|
||||
"log"
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"ghproxy/api"
|
||||
"ghproxy/auth"
|
||||
"ghproxy/config"
|
||||
"ghproxy/loggin"
|
||||
"ghproxy/proxy"
|
||||
"ghproxy/rate"
|
||||
"ghproxy/timing"
|
||||
|
||||
"github.com/WJQSERVER-STUDIO/go-utils/logger"
|
||||
|
||||
|
|
@ -40,6 +41,8 @@ var (
|
|||
|
||||
var (
|
||||
logw = logger.Logw
|
||||
LogDump = logger.LogDump
|
||||
logDebug = logger.LogDebug
|
||||
logInfo = logger.LogInfo
|
||||
logWarning = logger.LogWarning
|
||||
logError = logger.LogError
|
||||
|
|
@ -53,20 +56,27 @@ func loadConfig() {
|
|||
var err error
|
||||
cfg, err = config.LoadConfig(cfgfile)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to load config: %v", err)
|
||||
fmt.Printf("Failed to load config: %v\n", err)
|
||||
}
|
||||
if cfg.Server.Debug {
|
||||
fmt.Println("Config File Path: ", cfgfile)
|
||||
fmt.Printf("Loaded config: %v\n", cfg)
|
||||
}
|
||||
fmt.Println("Config File Path: ", cfgfile)
|
||||
fmt.Printf("Loaded config: %v\n", cfg)
|
||||
}
|
||||
|
||||
func setupLogger(cfg *config.Config) {
|
||||
var err error
|
||||
err = logger.Init(cfg.Log.LogFilePath, cfg.Log.MaxLogSize)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to initialize logger: %v", err)
|
||||
fmt.Printf("Failed to initialize logger: %v\n", err)
|
||||
}
|
||||
logInfo("Config File Path: ", cfgfile)
|
||||
logInfo("Loaded config: %v\n", cfg)
|
||||
err = logger.SetLogLevel(cfg.Log.Level)
|
||||
if err != nil {
|
||||
fmt.Printf("Logger Level Error: %v\n", err)
|
||||
}
|
||||
fmt.Printf("Log Level: %s\n", cfg.Log.Level)
|
||||
logDebug("Config File Path: ", cfgfile)
|
||||
logDebug("Loaded config: %v\n", cfg)
|
||||
logInfo("Init Completed")
|
||||
}
|
||||
|
||||
|
|
@ -87,7 +97,6 @@ func setupRateLimit(cfg *config.Config) {
|
|||
} else {
|
||||
logError("Invalid RateLimit Method: %s", cfg.RateLimit.RateMethod)
|
||||
}
|
||||
logInfo("Rate Limit Loaded")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -116,9 +125,20 @@ func init() {
|
|||
runMode = "release"
|
||||
}
|
||||
|
||||
logDebug("Run Mode: %s", runMode)
|
||||
|
||||
gin.LoggerWithWriter(io.Discard)
|
||||
router = gin.New()
|
||||
|
||||
// 添加recovery中间件
|
||||
router.Use(gin.Recovery())
|
||||
|
||||
// 添加log中间件
|
||||
router.Use(loggin.Middleware())
|
||||
|
||||
// 添加计时中间件
|
||||
router.Use(timing.Middleware())
|
||||
|
||||
//H2C默认值为true,而后遵循cfg.Server.EnableH2C的设置
|
||||
if cfg.Server.EnableH2C == "on" {
|
||||
router.UseH2C = true
|
||||
|
|
@ -141,7 +161,7 @@ func init() {
|
|||
} else if !cfg.Pages.Enabled {
|
||||
pages, err := fs.Sub(pagesFS, "pages")
|
||||
if err != nil {
|
||||
log.Fatalf("Failed when processing pages: %s", err)
|
||||
logError("Failed when processing pages: %s", err)
|
||||
}
|
||||
router.GET("/", gin.WrapH(http.FileServer(http.FS(pages))))
|
||||
router.GET("/favicon.ico", gin.WrapH(http.FileServer(http.FS(pages))))
|
||||
|
|
@ -152,6 +172,8 @@ func init() {
|
|||
})
|
||||
|
||||
fmt.Printf("GHProxy Version: %s\n", version)
|
||||
fmt.Printf("A Go Based High-Performance Github Proxy \n")
|
||||
fmt.Printf("Made by WJQSERVER-STUDIO\n")
|
||||
}
|
||||
|
||||
func main() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue