pgterminate/notifier/notifier.go
Julien Riou 2bc6ab0280
chore: Rename module
Signed-off-by: Julien Riou <julien@riou.xyz>
2026-06-30 13:01:01 +02:00

24 lines
710 B
Go

package notifier
import (
"git.riou.xyz/jriou/pgterminate/base"
)
// Notifier generic interface for implementing a notifier
type Notifier interface {
Run()
Reload()
}
// NewNotifier looks into Config to create a Console, File or Syslog notifier and pass it
// the session channel for consuming sessions structs sent by terminator
func NewNotifier(ctx *base.Context) Notifier {
switch ctx.Config.LogDestination {
case "file":
return NewFile(ctx.Config.LogFile, ctx.Config.LogFormat, ctx.Sessions)
case "syslog":
return NewSyslog(ctx.Config.SyslogFacility, ctx.Config.SyslogIdent, ctx.Config.LogFormat, ctx.Sessions)
default: // console
return NewConsole(ctx.Config.LogFormat, ctx.Sessions)
}
}