package main import ( "fmt" "gopkg.in/ini.v1" config "logagent/conf" "logagent/kafka" "logagent/taillog" "time" ) //logagent的入口程序 var ( cfg = new(config.AppConfig) ) func run() { //1.读取日志 for { select { case line := <-taillog.ReadChan(): //2.发送给kafka kafka.SendToKafka(cfg.KafkaConf.Topic, line.Text) default: time.Sleep(time.Second) } } } func main() { //0.加载配置文件 //cfg, err := ini.Load("./conf/config.ini") //if err != nil { // fmt.Println("load ini config err", err) //} //fmt.Println(cfg.Section("kafka").Key("address")) //fmt.Println(cfg.Section("kafka").Key("topic")) //fmt.Println(cfg.Section("taillog").Key("path")) err := ini.MapTo(cfg, "./conf/config.ini") if err != nil { fmt.Println("load ini err:", err) } //1.初始化kafka连接 err = kafka.Init([]string{cfg.KafkaConf.Address}) if err != nil { fmt.Printf("init kafka failed,error:%v\n", err) return } fmt.Println("init kafka success") //2.打开日志文件准备收集日志 err = taillog.Init(cfg.TailLog.FileName) if err != nil { fmt.Printf("taillog init failed,error:%v\n", err) return } fmt.Println("init taillog success") run() }