func main() { configPath := flag.String("config", "", "config file") flag.Parse() var configs Config if _, err := toml.DecodeFile(*configPath, &configs); err != nil { log.Fatal(err) } // TODO: consider supporting multiple endpoints. for now just always // use the first one config := configs.Endpoint[0] var roots *x509.CertPool roots = nil if len(config.RootCAs) > 0 { roots = x509.NewCertPool() for _, CA := range config.RootCAs { pem, err := ioutil.ReadFile(CA) if err != nil { log.Fatal(err) } ok := roots.AppendCertsFromPEM(pem) if !ok { log.Fatal("failed to parse CA certificate") } } } tr := &http.Transport{ TLSClientConfig: &tls.Config{RootCAs: roots}, DisableCompression: true, } client = &http.Client{Transport: tr} plugin := &SplunkPlugin{Client: client, Token: config.AuthToken, Url: "https://" + config.Host + ":" + strconv.Itoa(config.Port) + config.URL} p, err := loggerplugin.NewLoggerPlugin(plugin) if err != nil { log.Fatal(err) } err = p.Run() if err != nil { log.Fatal(err) } }
func main() { out, err := os.Create("log-example.txt") if err != nil { panic(err) } defer func() { if err := out.Close(); err != nil { panic(err) } }() w := bufio.NewWriter(out) log.SetOutput(out) p, err := loggerplugin.NewLoggerPlugin(&TextfilePlugin{w}) if err != nil { log.Fatal(err) } err = p.Run() if err != nil { log.Fatal(err) } }