mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-30 23:52:26 -05:00 
			
		
		
		
	Add optional syslog logrus hook (#343)
* add optional syslog logrus hook * document syslog
This commit is contained in:
		
					parent
					
						
							
								909f801742
							
						
					
				
			
			
				commit
				
					
						c111b239f7
					
				
			
		
					 38 changed files with 2242 additions and 37 deletions
				
			
		
							
								
								
									
										55
									
								
								vendor/github.com/sirupsen/logrus/hooks/syslog/syslog.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								vendor/github.com/sirupsen/logrus/hooks/syslog/syslog.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,55 @@ | |||
| // +build !windows,!nacl,!plan9 | ||||
| 
 | ||||
| package syslog | ||||
| 
 | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"log/syslog" | ||||
| 	"os" | ||||
| 
 | ||||
| 	"github.com/sirupsen/logrus" | ||||
| ) | ||||
| 
 | ||||
| // SyslogHook to send logs via syslog. | ||||
| type SyslogHook struct { | ||||
| 	Writer        *syslog.Writer | ||||
| 	SyslogNetwork string | ||||
| 	SyslogRaddr   string | ||||
| } | ||||
| 
 | ||||
| // Creates a hook to be added to an instance of logger. This is called with | ||||
| // `hook, err := NewSyslogHook("udp", "localhost:514", syslog.LOG_DEBUG, "")` | ||||
| // `if err == nil { log.Hooks.Add(hook) }` | ||||
| func NewSyslogHook(network, raddr string, priority syslog.Priority, tag string) (*SyslogHook, error) { | ||||
| 	w, err := syslog.Dial(network, raddr, priority, tag) | ||||
| 	return &SyslogHook{w, network, raddr}, err | ||||
| } | ||||
| 
 | ||||
| func (hook *SyslogHook) Fire(entry *logrus.Entry) error { | ||||
| 	line, err := entry.String() | ||||
| 	if err != nil { | ||||
| 		fmt.Fprintf(os.Stderr, "Unable to read entry, %v", err) | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	switch entry.Level { | ||||
| 	case logrus.PanicLevel: | ||||
| 		return hook.Writer.Crit(line) | ||||
| 	case logrus.FatalLevel: | ||||
| 		return hook.Writer.Crit(line) | ||||
| 	case logrus.ErrorLevel: | ||||
| 		return hook.Writer.Err(line) | ||||
| 	case logrus.WarnLevel: | ||||
| 		return hook.Writer.Warning(line) | ||||
| 	case logrus.InfoLevel: | ||||
| 		return hook.Writer.Info(line) | ||||
| 	case logrus.DebugLevel, logrus.TraceLevel: | ||||
| 		return hook.Writer.Debug(line) | ||||
| 	default: | ||||
| 		return nil | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func (hook *SyslogHook) Levels() []logrus.Level { | ||||
| 	return logrus.AllLevels | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue