| 
									
										
										
										
											2015-01-04 14:20:16 +01:00
										 |  |  | package logger | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							|  |  |  | 	"fmt" | 
					
						
							|  |  |  | 	"io" | 
					
						
							|  |  |  | 	"log" | 
					
						
							|  |  |  | 	"os" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	"github.com/ethereum/go-ethereum/ethutil" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func openLogFile(datadir string, filename string) *os.File { | 
					
						
							|  |  |  | 	path := ethutil.AbsolutePath(datadir, filename) | 
					
						
							|  |  |  | 	file, err := os.OpenFile(path, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) | 
					
						
							|  |  |  | 	if err != nil { | 
					
						
							|  |  |  | 		panic(fmt.Sprintf("error opening log file '%s': %v", filename, err)) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	return file | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-01-21 10:17:07 -06:00
										 |  |  | func New(datadir string, logFile string, logLevel int, logFormat string) LogSystem { | 
					
						
							| 
									
										
										
										
											2015-01-04 14:20:16 +01:00
										 |  |  | 	var writer io.Writer | 
					
						
							|  |  |  | 	if logFile == "" { | 
					
						
							|  |  |  | 		writer = os.Stdout | 
					
						
							|  |  |  | 	} else { | 
					
						
							|  |  |  | 		writer = openLogFile(datadir, logFile) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-01-21 10:17:07 -06:00
										 |  |  | 	var sys LogSystem | 
					
						
							|  |  |  | 	switch logFormat { | 
					
						
							|  |  |  | 	case "raw": | 
					
						
							|  |  |  | 		sys = NewRawLogSystem(writer, 0, LogLevel(logLevel)) | 
					
						
							|  |  |  | 	default: | 
					
						
							|  |  |  | 		sys = NewStdLogSystem(writer, log.LstdFlags, LogLevel(logLevel)) | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2015-01-04 14:20:16 +01:00
										 |  |  | 	AddLogSystem(sys) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	return sys | 
					
						
							|  |  |  | } |