5d3f30cfc8
Not setting mode explicitly sets gin into debug mode, but it does not make it possible to retrieve gin mode as Debug since it's set to "".
73 lines
1.4 KiB
Go
73 lines
1.4 KiB
Go
// Copyright 2014 Manu Martinez-Almeida. All rights reserved.
|
|
// Use of this source code is governed by a MIT style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package gin
|
|
|
|
import (
|
|
"io"
|
|
"os"
|
|
|
|
"github.com/gin-gonic/gin/binding"
|
|
)
|
|
|
|
const ENV_GIN_MODE = "GIN_MODE"
|
|
|
|
const (
|
|
DebugMode = "debug"
|
|
ReleaseMode = "release"
|
|
TestMode = "test"
|
|
)
|
|
const (
|
|
debugCode = iota
|
|
releaseCode
|
|
testCode
|
|
)
|
|
|
|
// DefaultWriter is the default io.Writer used the Gin for debug output and
|
|
// middleware output like Logger() or Recovery().
|
|
// Note that both Logger and Recovery provides custom ways to configure their
|
|
// output io.Writer.
|
|
// To support coloring in Windows use:
|
|
// import "github.com/mattn/go-colorable"
|
|
// gin.DefaultWriter = colorable.NewColorableStdout()
|
|
var DefaultWriter io.Writer = os.Stdout
|
|
var DefaultErrorWriter io.Writer = os.Stderr
|
|
|
|
var ginMode = debugCode
|
|
var modeName = DebugMode
|
|
|
|
func init() {
|
|
mode := os.Getenv(ENV_GIN_MODE)
|
|
SetMode(mode)
|
|
}
|
|
|
|
func SetMode(value string) {
|
|
switch value {
|
|
case DebugMode, "":
|
|
ginMode = debugCode
|
|
case ReleaseMode:
|
|
ginMode = releaseCode
|
|
case TestMode:
|
|
ginMode = testCode
|
|
default:
|
|
panic("gin mode unknown: " + value)
|
|
}
|
|
if value == "" {
|
|
value = DebugMode
|
|
}
|
|
modeName = value
|
|
}
|
|
|
|
func DisableBindValidation() {
|
|
binding.Validator = nil
|
|
}
|
|
|
|
func EnableJsonDecoderUseNumber() {
|
|
binding.EnableDecoderUseNumber = true
|
|
}
|
|
|
|
func Mode() string {
|
|
return modeName
|
|
}
|