61 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package log
 | |
| 
 | |
| import "time"
 | |
| 
 | |
| // Option used by the logger
 | |
| type Option func(*Options)
 | |
| 
 | |
| // Options are logger options
 | |
| type Options struct {
 | |
| 	// Size is the size of ring buffer
 | |
| 	Size int
 | |
| }
 | |
| 
 | |
| // Size sets the size of the ring buffer
 | |
| func Size(s int) Option {
 | |
| 	return func(o *Options) {
 | |
| 		o.Size = s
 | |
| 	}
 | |
| }
 | |
| 
 | |
| // DefaultOptions returns default options
 | |
| func DefaultOptions() Options {
 | |
| 	return Options{
 | |
| 		Size: DefaultSize,
 | |
| 	}
 | |
| }
 | |
| 
 | |
| // ReadOptions for querying the logs
 | |
| type ReadOptions struct {
 | |
| 	// Since what time in past to return the logs
 | |
| 	Since time.Time
 | |
| 	// Count specifies number of logs to return
 | |
| 	Count int
 | |
| 	// Stream requests continuous log stream
 | |
| 	Stream bool
 | |
| }
 | |
| 
 | |
| // ReadOption used for reading the logs
 | |
| type ReadOption func(*ReadOptions)
 | |
| 
 | |
| // Since sets the time since which to return the log records
 | |
| func Since(s time.Time) ReadOption {
 | |
| 	return func(o *ReadOptions) {
 | |
| 		o.Since = s
 | |
| 	}
 | |
| }
 | |
| 
 | |
| // Count sets the number of log records to return
 | |
| func Count(c int) ReadOption {
 | |
| 	return func(o *ReadOptions) {
 | |
| 		o.Count = c
 | |
| 	}
 | |
| }
 | |
| 
 | |
| // Stream requests continuous log stream
 | |
| func Stream(s bool) ReadOption {
 | |
| 	return func(o *ReadOptions) {
 | |
| 		o.Stream = s
 | |
| 	}
 | |
| }
 |