mirror of
				https://github.com/mgechev/revive.git
				synced 2025-10-30 23:37:49 +02:00 
			
		
		
		
	Add debug logger (#604)
Signed-off-by: David Jimenez <dvejmz@sgfault.com>
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -3,3 +3,4 @@ revive | ||||
| vendor | ||||
| *.swp | ||||
| dist/ | ||||
| *.log | ||||
|   | ||||
							
								
								
									
										44
									
								
								logging/logger.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								logging/logger.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | ||||
| package logging | ||||
|  | ||||
| import ( | ||||
| 	"io" | ||||
| 	"io/ioutil" | ||||
| 	"log" | ||||
| 	"os" | ||||
| ) | ||||
|  | ||||
| var logger *log.Logger | ||||
|  | ||||
| // GetLogger retrieves an instance of an application logger which outputs | ||||
| // to a file if the debug flag is enabled | ||||
| func GetLogger() (*log.Logger, error) { | ||||
| 	if logger != nil { | ||||
| 		return logger, nil | ||||
| 	} | ||||
|  | ||||
| 	var writer io.Writer | ||||
| 	var err error | ||||
|  | ||||
| 	debugModeEnabled := os.Getenv("DEBUG") == "1" | ||||
| 	if debugModeEnabled { | ||||
| 		writer, err = os.Create("revive.log") | ||||
| 		if err != nil { | ||||
| 			return nil, err | ||||
| 		} | ||||
| 	} else { | ||||
| 		// Suppress all logging output if debug mode is disabled | ||||
| 		writer = ioutil.Discard | ||||
| 	} | ||||
|  | ||||
| 	logger = log.New(writer, "", log.LstdFlags) | ||||
|  | ||||
| 	if !debugModeEnabled { | ||||
| 		// Clear all flags to skip log output formatting step to increase | ||||
| 		// performance somewhat if we're not logging anything | ||||
| 		logger.SetFlags(0) | ||||
| 	} | ||||
|  | ||||
| 	logger.Println("Logger initialised") | ||||
|  | ||||
| 	return logger, nil | ||||
| } | ||||
							
								
								
									
										8
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								main.go
									
									
									
									
									
								
							| @@ -13,6 +13,7 @@ import ( | ||||
| 	"github.com/mgechev/dots" | ||||
| 	"github.com/mgechev/revive/config" | ||||
| 	"github.com/mgechev/revive/lint" | ||||
| 	"github.com/mgechev/revive/logging" | ||||
| 	"github.com/mitchellh/go-homedir" | ||||
| ) | ||||
|  | ||||
| @@ -29,6 +30,11 @@ func fail(err string) { | ||||
| } | ||||
|  | ||||
| func main() { | ||||
| 	log, err := logging.GetLogger() | ||||
| 	if err != nil { | ||||
| 		fail(err.Error()) | ||||
| 	} | ||||
|  | ||||
| 	conf, err := config.GetConfig(configPath) | ||||
| 	if err != nil { | ||||
| 		fail(err.Error()) | ||||
| @@ -60,6 +66,8 @@ func main() { | ||||
| 		fail(err.Error()) | ||||
| 	} | ||||
|  | ||||
| 	log.Println("Config loaded") | ||||
|  | ||||
| 	failures, err := revive.Lint(packages, lintingRules, *conf) | ||||
| 	if err != nil { | ||||
| 		fail(err.Error()) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user