/
kingologs.go
50 lines (37 loc) · 1.16 KB
/
kingologs.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package main
import (
"flag"
"io/ioutil"
"os"
"github.com/syrneus/kingologs/kingologs"
)
// CLI flags.
var configFile = flag.String("config", "/etc/kingologs/config.yml", "YAML config file path")
// Config for the program.
var config kingologs.ConfigValues
func main() {
// Load command line options.
flag.Parse()
// Load the YAML config.
config, _ = kingologs.CreateConfig(*configFile)
// Set up the logger based on the configuration.
var logger kingologs.Logger
if config.Debug.Verbose {
logger = *kingologs.CreateLogger(os.Stdout, os.Stdout, os.Stdout, os.Stderr)
logger.Info.Println("Debugging mode enabled")
logger.Info.Printf("Loaded Config: %v", config)
} else {
logger = *kingologs.CreateLogger(ioutil.Discard, os.Stdout, os.Stdout, os.Stderr)
}
// Start our syslog 'server'
srv := kingologs.NewServer(logger, config)
// Create the Kinesis relay.
kr := kingologs.NewKinesisRelay(logger, config)
// Tell the server to send new messages to the Kinesis relay channel
srv.SetTargetChan(kr.Pipe)
srv.StartServer()
// Start the actual relaying to Kinesis
go kr.StartRelay()
logger.Trace.Println("Done setting up")
select {} // block forever
}