- With issues:
- Use the search tool before opening a new issue.
- Please provide source code and commit sha if you found a bug.
- Review existing issues and provide feedback or react to them.
Description
gin.setMode release effect,but console still output run on debug mode
How to reproduce
gin.SetMode(gin.ReleaseMode)
if gin.Mode() == gin.ReleaseMode {
f, _ := os.Create(cfg.Section("log").Key("path").String())
gin.DefaultWriter = io.MultiWriter(f)
}
routes.Run(cfg.Section("httpserver").Key("port").String())
Expectations
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production. - using env: export GIN_MODE=release - using code: gin.SetMode(gin.ReleaseMode)
Actual result
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production. - using env: export GIN_MODE=release - using code: gin.SetMode(gin.ReleaseMode)
## Environment
- go version:1.19
- gin version (or commit ref):1.8.1
- operating system:windows10
**Comment From: Gasoid**
in order to set env variable in windows you have to use `set`:
set GIN_MODE="release"
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1
**Comment From: SeanTolstoyevski**
@Gasoid why?
> in order to set env variable in windows you have to use set:
why doesn't work as code on windows?
**Comment From: Gasoid**
according to code https://github.com/gin-gonic/gin/blob/2ae61570499d8bb5eb05e46d22a3754cf2635e63/mode.go#L57-L78
it is pretty straightforward. Do you have full context of your code ? before `gin.SetMode(gin.ReleaseMode)`
**Comment From: YCF**
> in order to set env variable in windows you have to use `set`:
>
> ```
> set GIN_MODE="release"
> ```
>
> https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1
- ### cmd
set GIN_MODE=release
No **quotes**
- ### PowerShell
$env:GIN_MODE="release"
Need **quotes**
**Comment From: mrtdeh**
my os is ubuntu 20 and I have the same problem , here is my code:
```golang
gin.SetMode(gin.ReleaseMode)
gin.DefaultWriter = io.Discard
router := routers.InitRouter()
fmt.Println("gin.IsDebugging() : ", gin.IsDebugging())
server := &http.Server{
Addr: "0.0.0.0:8010",
Handler: router,
}
// log.Printf("[info] start http server listening %s", endpoint)
err := server.ListenAndServe()
if err != nil {
log.Fatal("fatal error in serve http : ", err.Error())
}
and then output :
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
- using env: export GIN_MODE=release
- using code: gin.SetMode(gin.ReleaseMode)
gin.IsDebugging() : false
go : 1.20 gin : 1.9.0
does anyone notice?
Comment From: mrtdeh
I found the problem My mistake is an extra gin.New() was in other files that I forgot to remove and caused this warning.