Преглед изворни кода

Merge branch 'master' into cloudwatch

Torkel Ödegaard пре 10 година
родитељ
комит
182e079d25

+ 1 - 0
.gitignore

@@ -31,3 +31,4 @@ conf/custom.ini
 fig.yml
 profile.cov
 grafana
+.notouch

+ 2 - 0
conf/defaults.ini

@@ -224,6 +224,8 @@ level = Info
 # For "console" mode only
 [log.console]
 level =
+# Set formatting to "false" to disable color formatting of console logs
+formatting = true
 
 # For "file" mode only
 [log.file]

+ 4 - 4
docs/mkdocs.yml

@@ -25,13 +25,16 @@ google_analytics: ['UA-47280256-1', 'grafana.org']
 pages:
 
 # Introduction:
-- ['index.md', 'About', 'Grafana']
+- ['index.md', 'Project', 'About Grafana']
+- ['project/cla.md', 'Project', 'Contributor License Agreement']
+
 - ['installation/index.md', 'Installation', 'Installation']
 - ['installation/debian.md', 'Installation', 'Installing on Debian / Ubuntu']
 - ['installation/rpm.md', 'Installation', 'Installing on RPM-based Linux']
 - ['installation/mac.md', 'Installation', 'Installing on Mac OS X']
 - ['installation/windows.md', 'Installation', 'Installing on Windows']
 - ['installation/docker.md', 'Installation', 'Installing on Docker']
+- ['project/building_from_source.md', 'Installation', 'Building from Source']
 
 - ['installation/configuration.md', 'Installation', 'Configuration']
 - ['installation/ldap.md', 'Installation', 'LDAP Integration']
@@ -70,7 +73,4 @@ pages:
 - ['tutorials/index.md', 'Tutorials', 'Tutorials']
 - ['tutorials/hubot_howto.md', 'Tutorials', 'How To integrate Hubot and Grafana']
 
-- ['project/building_from_source.md', 'Project', 'Building from Source']
-- ['project/cla.md', 'Project', 'Contributor License Agreement']
-
 - ['jsearch.md', '**HIDDEN**']

+ 7 - 5
pkg/log/console.go

@@ -45,15 +45,17 @@ var (
 
 // ConsoleWriter implements LoggerInterface and writes messages to terminal.
 type ConsoleWriter struct {
-	lg    *log.Logger
-	Level int `json:"level"`
+	lg         *log.Logger
+	Level      int  `json:"level"`
+	Formatting bool `json:"formatting"`
 }
 
 // create ConsoleWriter returning as LoggerInterface.
 func NewConsole() LoggerInterface {
 	return &ConsoleWriter{
-		lg:    log.New(os.Stderr, "", log.Ldate|log.Ltime),
-		Level: TRACE,
+		lg:         log.New(os.Stderr, "", log.Ldate|log.Ltime),
+		Level:      TRACE,
+		Formatting: true,
 	}
 }
 
@@ -65,7 +67,7 @@ func (cw *ConsoleWriter) WriteMsg(msg string, skip, level int) error {
 	if cw.Level > level {
 		return nil
 	}
-	if runtime.GOOS == "windows" {
+	if runtime.GOOS == "windows" || !cw.Formatting {
 		cw.lg.Println(msg)
 	} else {
 		cw.lg.Println(colors[level](msg))

+ 6 - 2
pkg/setting/setting.go

@@ -140,7 +140,7 @@ type CommandLineArgs struct {
 
 func init() {
 	IsWindows = runtime.GOOS == "windows"
-	log.NewLogger(0, "console", `{"level": 0}`)
+	log.NewLogger(0, "console", `{"level": 0, "formatting":true}`)
 }
 
 func parseAppUrlAndSubUrl(section *ini.Section) (string, string) {
@@ -527,7 +527,11 @@ func initLogging(args *CommandLineArgs) {
 		// Generate log configuration.
 		switch mode {
 		case "console":
-			LogConfigs[i] = util.DynMap{"level": level}
+			formatting := sec.Key("formatting").MustBool(true)
+			LogConfigs[i] = util.DynMap{
+				"level":      level,
+				"formatting": formatting,
+			}
 		case "file":
 			logPath := sec.Key("file_name").MustString(filepath.Join(LogsPath, "grafana.log"))
 			os.MkdirAll(filepath.Dir(logPath), os.ModePerm)

+ 1 - 1
public/app/plugins/datasource/elasticsearch/query_def.js

@@ -36,7 +36,7 @@ function (_) {
       {text: "No limit", value: '0' },
       {text: "1", value: '1' },
       {text: "2", value: '2' },
-      {text: "3", value: '4' },
+      {text: "3", value: '3' },
       {text: "5", value: '5' },
       {text: "10", value: '10' },
       {text: "15", value: '15' },