34 lines
		
	
	
		
			674 B
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			34 lines
		
	
	
		
			674 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func New(datadir string, logFile string, logLevel int) LogSystem {
							 | 
						||
| 
								 | 
							
									var writer io.Writer
							 | 
						||
| 
								 | 
							
									if logFile == "" {
							 | 
						||
| 
								 | 
							
										writer = os.Stdout
							 | 
						||
| 
								 | 
							
									} else {
							 | 
						||
| 
								 | 
							
										writer = openLogFile(datadir, logFile)
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									sys := NewStdLogSystem(writer, log.LstdFlags, LogLevel(logLevel))
							 | 
						||
| 
								 | 
							
									AddLogSystem(sys)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									return sys
							 | 
						||
| 
								 | 
							
								}
							 |