mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-11-03 20:12:25 -06:00 
			
		
		
		
	* start fixing up tests * fix up tests + automate with drone * fiddle with linting * messing about with drone.yml * some more fiddling * hmmm * add cache * add vendor directory * verbose * ci updates * update some little things * update sig
		
			
				
	
	
		
			34 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package logrus
 | 
						|
 | 
						|
// A hook to be fired when logging on the logging levels returned from
 | 
						|
// `Levels()` on your implementation of the interface. Note that this is not
 | 
						|
// fired in a goroutine or a channel with workers, you should handle such
 | 
						|
// functionality yourself if your call is non-blocking and you don't wish for
 | 
						|
// the logging calls for levels returned from `Levels()` to block.
 | 
						|
type Hook interface {
 | 
						|
	Levels() []Level
 | 
						|
	Fire(*Entry) error
 | 
						|
}
 | 
						|
 | 
						|
// Internal type for storing the hooks on a logger instance.
 | 
						|
type LevelHooks map[Level][]Hook
 | 
						|
 | 
						|
// Add a hook to an instance of logger. This is called with
 | 
						|
// `log.Hooks.Add(new(MyHook))` where `MyHook` implements the `Hook` interface.
 | 
						|
func (hooks LevelHooks) Add(hook Hook) {
 | 
						|
	for _, level := range hook.Levels() {
 | 
						|
		hooks[level] = append(hooks[level], hook)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// Fire all the hooks for the passed level. Used by `entry.log` to fire
 | 
						|
// appropriate hooks for a log entry.
 | 
						|
func (hooks LevelHooks) Fire(level Level, entry *Entry) error {
 | 
						|
	for _, hook := range hooks[level] {
 | 
						|
		if err := hook.Fire(entry); err != nil {
 | 
						|
			return err
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	return nil
 | 
						|
}
 |