gin/mode.go
Javier Provecho Fernandez 32cab500ec v1.1 (#751)
* Implement QueryArray and PostArray methods

* Refactor GetQuery and GetPostForm

* Removed additional Iota

I think assigning iota to each constant is not required

* Add 1.7 test.

* Add codecov.io

* corrected a typo in README

* remove coveralls services.

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>

* Update TravisCI to Gitter webhook

* Add codecov.yml Gitter webhook

* Changed imports to gopkg instead of github in README (#733)

* Add contribution guide

* Update go get for stable version

In the future, github default branch will be develop so running `go get github.com/gin-gonic/gin` will pull latest code from develop.

* Changed imports to gopkg instead of github in README

* Update README.md

* Logger: skip ANSI color commands if output is not a tty
2016-12-03 10:10:40 +01:00

70 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 string = "debug"
ReleaseMode string = "release"
TestMode string = "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)
if len(mode) == 0 {
SetMode(DebugMode)
} else {
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)
}
modeName = value
}
func DisableBindValidation() {
binding.Validator = nil
}
func Mode() string {
return modeName
}