| 
									
										
										
										
											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{}) { | 
					
						
							| 
									
										
										
										
											2019-05-23 21:02:30 +01:00
										 |  |  | 	if !D.Value() { | 
					
						
							| 
									
										
										
										
											2018-04-22 08:20:01 +01:00
										 |  |  | 		return | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	p.log(debug, v...) | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Debugf logs as log.Debugf. | 
					
						
							|  |  |  | func (p P) Debugf(format string, v ...interface{}) { | 
					
						
							| 
									
										
										
										
											2019-05-23 21:02:30 +01:00
										 |  |  | 	if !D.Value() { | 
					
						
							| 
									
										
										
										
											2018-04-22 08:20:01 +01:00
										 |  |  | 		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) } |