func testConfig() *Config { severity, _ := syslog.Severity("info") facility, _ := syslog.Facility("user") addr := server.addr() return &Config{ ConnectTimeout: 10 * time.Second, WriteTimeout: 10 * time.Second, NewFileCheckInterval: 1 * time.Second, LogLevels: "<root>=INFO", TcpMaxLineLength: 99990, NoDetach: true, Hostname: "testhost", Severity: severity, Facility: facility, Destination: struct { Host string Port int Protocol string }{ Host: addr.host, Port: addr.port, Protocol: "tcp", }, Files: []LogFile{ { Path: "tmp/*.log", }, }, } }
func (cm *ConfigManager) Severity() syslog.Priority { s, err := syslog.Severity(cm.Flags.Severity) if err != nil { log.Criticalf("%s is not a designated facility", cm.Flags.Severity) os.Exit(1) } return s }
func TestRawConfig(t *testing.T) { assert := assert.New(t) initConfigAndFlags() // pretend like some things were passed on the command line flags.Set("configfile", "test/config.yaml") flags.Set("tls", "true") c, err := NewConfigFromEnv() if err != nil { t.Fatal(err) } assert.Equal(c.Destination.Host, "logs.papertrailapp.com") assert.Equal(c.Destination.Port, 514) assert.Equal(c.Destination.Protocol, "tls") assert.Equal(c.ExcludePatterns, []*regexp.Regexp{regexp.MustCompile("don't log on me"), regexp.MustCompile(`do \w+ on me`)}) assert.Equal(c.ExcludeFiles, []*regexp.Regexp{regexp.MustCompile(`\.DS_Store`)}) assert.Equal(c.Files, []LogFile{ { Path: "locallog.txt", }, { Path: "/var/log/**/*.log", }, { Tag: "nginx", Path: "/var/log/nginx/nginx.log", }, { Tag: "apache", Path: "/var/log/httpd/access_log", }, }) assert.Equal(c.TcpMaxLineLength, 99991) assert.Equal(c.NewFileCheckInterval, 10*time.Second) assert.Equal(c.ConnectTimeout, 5*time.Second) assert.Equal(c.WriteTimeout, 30*time.Second) assert.Equal(c.TCP, false) assert.Equal(c.TLS, true) assert.Equal(c.LogLevels, "<root>=INFO") assert.Equal(c.PidFile, "/var/run/rs2.pid") assert.Equal(c.DebugLogFile, "/dev/null") assert.Equal(c.NoDetach, false) sev, err := syslog.Severity("notice") if err != nil { t.Fatal(err) } assert.Equal(c.Severity, sev) fac, err := syslog.Facility("user") if err != nil { t.Fatal(err) } assert.Equal(c.Facility, fac) assert.NotEqual(c.Hostname, "") assert.Equal(c.Poll, false) assert.Equal(c.RootCAs, papertrail.RootCA()) }
func decodePriority(p interface{}) (interface{}, error) { ps, ok := p.(string) if !ok { return nil, fmt.Errorf("Invalid priority: %#v", p) } pri, err := syslog.Severity(ps) if err == nil { return pri, nil } // if it's not a severity, try facility pri, err = syslog.Facility(ps) if err == nil { return pri, nil } return nil, fmt.Errorf("%s: %s", err.Error(), ps) }