diff --git a/tracer/tracer.go b/tracer/tracer.go new file mode 100644 index 0000000..48dae24 --- /dev/null +++ b/tracer/tracer.go @@ -0,0 +1,45 @@ +package tracer + +import ( + log "github.com/sirupsen/logrus" +) + +type Tracer struct { +} + +func Init() *Tracer { + return &Tracer{} +} + +func (tracer *Tracer) TraceEvent(event Event) { + log.WithFields(log.Fields{ + "status": event.Status.String(), + "event": event, + }).Info("New Event") +} + +type Event struct { + RemoteAddr string + Protocol string + Command string + Status Status + Msg string + ID string + Environ string + User string + Password string + Client string +} + +type Status int + +const ( + Start Status = iota + End + Stateless + Interaction +) + +func (status Status) String() string { + return [...]string{"Start", "End", "Stateless", "Interaction"}[status] +}