diff --git a/src/syslog/syslog.go b/src/syslog/syslog.go index 49283bb..f31c97c 100644 --- a/src/syslog/syslog.go +++ b/src/syslog/syslog.go @@ -17,6 +17,7 @@ var defaults = map[string]interface{}{ "Syslog.Host": "localhost", "Syslog.Port": 514, "Syslog.Protocol": "udp", + "Syslog.Format": "RFC5424", } func init() { @@ -46,6 +47,7 @@ func Connect() { hostname := viper.GetString("Syslog.Host") port := viper.GetInt("Syslog.Port") protocol := viper.GetString("Syslog.Protocol") + format := viper.GetString("Syslog.Format") conn := fmt.Sprintf("%s:%d", hostname, port) logger, err = srslog.Dial(protocol, conn, srslog.LOG_WARNING|srslog.LOG_DAEMON, "openpdu") @@ -55,6 +57,13 @@ func Connect() { go Connect() } + switch format { + case "RFC3164": + logger.SetFormatter(srslog.RFC3164Formatter) + default: // RFC5424 + logger.SetFormatter(srslog.RFC5424Formatter) + } + Connected = true } diff --git a/src/webui/syslog_ui.go b/src/webui/syslog_ui.go index f6db880..8a0c16b 100644 --- a/src/webui/syslog_ui.go +++ b/src/webui/syslog_ui.go @@ -12,6 +12,7 @@ func syslogPage(ctx *macaron.Context) { ctx.Data["host"] = viper.GetString("Syslog.Host") ctx.Data["port"] = viper.GetInt("Syslog.Port") ctx.Data["protocol"] = viper.GetString("Syslog.Protocol") + ctx.Data["format"] = viper.GetString("Syslog.Format") if syslog.Connected { ctx.Data["status"] = "Connected" @@ -26,6 +27,7 @@ type SyslogPostForm struct { Host string `form:"host" binding:"Required"` Port int `form:"port" binding:"Required"` Protocol string `form:"protocol" binding:"Required"` + Format string `form:"format" binding:"Required"` } func syslogPost(ctx *macaron.Context, f SyslogPostForm) { @@ -33,6 +35,8 @@ func syslogPost(ctx *macaron.Context, f SyslogPostForm) { viper.Set("Syslog.Host", strings.ToLower(strings.TrimSpace(f.Host))) viper.Set("Syslog.Port", f.Port) viper.Set("Syslog.Protocol", strings.TrimSpace(f.Protocol)) + // TODO: check format, it should be 'RFC5424' or 'RFC3164' + viper.Set("Syslog.Format", strings.TrimSpace(f.Format)) viper.WriteConfig() syslogPage(ctx) diff --git a/templates/syslog.html b/templates/syslog.html index 4303c61..3b21c67 100644 --- a/templates/syslog.html +++ b/templates/syslog.html @@ -60,6 +60,14 @@ +
+ +
+ +
+
+