package main import ( "github.com/Albert-Zhan/httpc" "github.com/unknwon/goconfig" "github.com/ztino/jd_seckill/cmd" "github.com/ztino/jd_seckill/common" "io" "log" "os" "runtime" "time" ) func init() { //将日志同时输出到控制台和文件 file := "./" + "jd_seckill_" + time.Now().Format("20060102") + ".log" logFile, logErr := os.OpenFile(file, os.O_CREATE|os.O_APPEND|os.O_RDWR, 0666) if logErr != nil { panic(logErr) } defer logFile.Close() mw := io.MultiWriter(os.Stdout, logFile) log.SetOutput(mw) log.SetPrefix("[jd_seckill]") log.SetFlags(log.LstdFlags | log.Lshortfile | log.LUTC) //客户端设置初始化 common.Client=httpc.NewHttpClient() common.CookieJar=httpc.NewCookieJar() common.Client.SetCookieJar(common.CookieJar) //配置文件初始化 confFile:="./conf.ini" var err error if common.Config,err=goconfig.LoadConfigFile(confFile);err!=nil { log.Println("配置文件不存在,程序退出") os.Exit(0) } //抢购状态管道 common.SeckillStatus=make(chan bool) log.Println("jd_seckill 程序启动成功,祝您成功!") } func main() { runtime.GOMAXPROCS(runtime.NumCPU()) cmd.Execute() }