| 
									
										
										
										
											2018-04-22 08:20:01 +01:00
										 |  |  | package log
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import (
 | 
					
						
							|  |  |  | 	"fmt"
 | 
					
						
							| 
									
										
										
										
											2018-07-20 19:45:17 +01:00
										 |  |  | 	"os"
 | 
					
						
							| 
									
										
										
										
											2018-04-22 08:20:01 +01:00
										 |  |  | )
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // P is a logger that includes the plugin doing the logging.
 | 
					
						
							|  |  |  | type P struct {
 | 
					
						
							|  |  |  | 	plugin string
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-22 21:40:33 +01:00
										 |  |  | // NewWithPlugin returns a logger that includes "plugin/name: " in the log message.
 | 
					
						
							| 
									
										
										
										
											2018-04-22 08:20:01 +01:00
										 |  |  | // I.e [INFO] plugin/<name>: message.
 | 
					
						
							| 
									
										
										
										
											2018-11-15 22:18:49 +00:00
										 |  |  | func NewWithPlugin(name string) P { return P{"plugin/" + name + ": "} }
 | 
					
						
							| 
									
										
										
										
											2018-04-22 08:20:01 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | func (p P) logf(level, format string, v ...interface{}) {
 | 
					
						
							| 
									
										
										
										
											2018-11-15 22:18:49 +00:00
										 |  |  | 	log(level, p.plugin, fmt.Sprintf(format, v...))
 | 
					
						
							| 
									
										
										
										
											2018-04-22 08:20:01 +01:00
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func (p P) log(level string, v ...interface{}) {
 | 
					
						
							| 
									
										
										
										
											2018-11-15 22:18:49 +00:00
										 |  |  | 	log(level+p.plugin, v...)
 | 
					
						
							| 
									
										
										
										
											2018-04-22 08:20:01 +01:00
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Debug logs as log.Debug.
 | 
					
						
							|  |  |  | func (p P) Debug(v ...interface{}) {
 | 
					
						
							|  |  |  | 	if !D {
 | 
					
						
							|  |  |  | 		return
 | 
					
						
							|  |  |  | 	}
 | 
					
						
							|  |  |  | 	p.log(debug, v...)
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Debugf logs as log.Debugf.
 | 
					
						
							|  |  |  | func (p P) Debugf(format string, v ...interface{}) {
 | 
					
						
							|  |  |  | 	if !D {
 | 
					
						
							|  |  |  | 		return
 | 
					
						
							|  |  |  | 	}
 | 
					
						
							|  |  |  | 	p.logf(debug, format, v...)
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Info logs as log.Info.
 | 
					
						
							|  |  |  | func (p P) Info(v ...interface{}) { p.log(info, v...) }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Infof logs as log.Infof.
 | 
					
						
							|  |  |  | func (p P) Infof(format string, v ...interface{}) { p.logf(info, format, v...) }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Warning logs as log.Warning.
 | 
					
						
							|  |  |  | func (p P) Warning(v ...interface{}) { p.log(warning, v...) }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Warningf logs as log.Warningf.
 | 
					
						
							|  |  |  | func (p P) Warningf(format string, v ...interface{}) { p.logf(warning, format, v...) }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Error logs as log.Error.
 | 
					
						
							|  |  |  | func (p P) Error(v ...interface{}) { p.log(err, v...) }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Errorf logs as log.Errorf.
 | 
					
						
							|  |  |  | func (p P) Errorf(format string, v ...interface{}) { p.logf(err, format, v...) }
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-20 19:45:17 +01:00
										 |  |  | // Fatal logs as log.Fatal and calls os.Exit(1).
 | 
					
						
							|  |  |  | func (p P) Fatal(v ...interface{}) { p.log(fatal, v...); os.Exit(1) }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Fatalf logs as log.Fatalf and calls os.Exit(1).
 | 
					
						
							|  |  |  | func (p P) Fatalf(format string, v ...interface{}) { p.logf(fatal, format, v...); os.Exit(1) }
 |