| 
					
				 | 
			
			
				@@ -0,0 +1,51 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+package core 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"log" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"os" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// Logger defines the output interface used by Hercules components. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+type Logger interface { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Info(...interface{}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Infof(string, ...interface{}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Warn(...interface{}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Warnf(string, ...interface{}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Error(...interface{}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Errorf(string, ...interface{}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// DefaultLogger is the default logger used by a pipeline, and wraps the standard 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// log library. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+type DefaultLogger struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	I *log.Logger 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	W *log.Logger 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	E *log.Logger 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// NewLogger returns a configured default logger. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func NewLogger() *DefaultLogger { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return &DefaultLogger{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		I: log.New(os.Stdout, "[INFO] ", log.LstdFlags), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		W: log.New(os.Stdout, "[WARN] ", log.LstdFlags), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		E: log.New(os.Stderr, "[ERROR] ", log.LstdFlags), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// Info writes to info logger 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func (d *DefaultLogger) Info(v ...interface{}) { d.I.Print(v...) } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// Infof writes to info logger 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func (d *DefaultLogger) Infof(f string, v ...interface{}) { d.I.Printf(f, v...) } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// Warn writes to the warning logger 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func (d *DefaultLogger) Warn(v ...interface{}) { d.W.Print(v...) } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// Warnf writes to the warning logger 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func (d *DefaultLogger) Warnf(f string, v ...interface{}) { d.W.Printf(f, v...) } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// Error writes to the error logger 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func (d *DefaultLogger) Error(v ...interface{}) { d.E.Print(v...) } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// Errorf writes to the error logger 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func (d *DefaultLogger) Errorf(f string, v ...interface{}) { d.E.Printf(f, v...) } 
			 |