1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- // 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"
- )
- // EnvGinMode indicates environment name for gin mode.
- const EnvGinMode = "GIN_MODE"
- const (
- // DebugMode indicates gin mode is debug.
- DebugMode = "debug"
- // ReleaseMode indicates gin mode is release.
- ReleaseMode = "release"
- // TestMode indicates gin mode is test.
- TestMode = "test"
- )
- const (
- debugCode = iota
- releaseCode
- testCode
- )
- // DefaultWriter is the default io.Writer used by 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
- // DefaultErrorWriter is the default io.Writer used by Gin to debug errors
- var DefaultErrorWriter io.Writer = os.Stderr
- var ginMode = debugCode
- var modeName = DebugMode
- func init() {
- mode := os.Getenv(EnvGinMode)
- SetMode(mode)
- }
- // SetMode sets gin mode according to input string.
- 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
- }
- // DisableBindValidation closes the default validator.
- func DisableBindValidation() {
- binding.Validator = nil
- }
- // EnableJsonDecoderUseNumber sets true for binding.EnableDecoderUseNumber to
- // call the UseNumber method on the JSON Decoder instance.
- func EnableJsonDecoderUseNumber() {
- binding.EnableDecoderUseNumber = true
- }
- // EnableJsonDisallowUnknownFields sets true for binding.EnableDecoderDisallowUnknownFields to
- // call the DisallowUnknownFields method on the JSON Decoder instance.
- func EnableJsonDecoderDisallowUnknownFields() {
- binding.EnableDecoderDisallowUnknownFields = true
- }
- // Mode returns currently gin mode.
- func Mode() string {
- return modeName
- }
|