func Test(t *testing.T) { runtime.GOMAXPROCS(runtime.NumCPU()) //指定是否控制台打印,默认为true logger.SetConsole(true) //设置日志格式 默认格式为Ldate|Ltime|Lshortfile 前缀为2015/09/17 22:55:44 main.go:13: logger.SetFormat(logger.Ldate) //指定日志文件备份方式为文件大小的方式 //第一个参数为日志文件存放目录 //第二个参数为日志文件命名 //第三个参数为备份文件最大数量 //第四个参数为备份文件大小 //第五个参数为文件大小的单位 //logger.SetRollingFile("d:/logtest", "test.log", 10, 5, logger.KB) //指定日志文件备份方式为日期的方式 //第一个参数为日志文件存放目录 //第二个参数为日志文件命名 logger.SetRollingDaily("d:/logtest", "test.log") //指定日志级别 ALL,DEBUG,INFO,WARN,ERROR,FATAL,OFF 级别由低到高 //一般习惯是测试阶段为debug,生成环境为info以上 logger.SetLevel(logger.ERROR) for i := 10000; i > 0; i-- { go log(i) time.Sleep(1000 * time.Millisecond) } time.Sleep(15 * time.Second) }
/*主入口*/ func main() { runtime.GOMAXPROCS(runtime.NumCPU()) //指定是否控制台打印,默认为true logger.SetConsole(true) //指定日志级别 ALL,DEBUG,INFO,WARN,ERROR,FATAL,OFF 级别由低到高 logger.SetLevel(logger.INFO) logger.SetRollingFile("./log", "datapostlog.log", 100, 50, logger.MB) if beego.AppConfig.String("runmode") == "dev" { orm.Debug = true } //支持异构版本升级 pipe.Upgrade() time.Sleep(3 * time.Second) //配置文件初始化 err := pipe.InitFile() if err != nil { logger.Error("InitFile():", err) } //注册运行服务 ServiceHandle(cSvcName, cSvcName, cSvcName, func() { //初始化运行参数 pipe.InitConfigMap() //运行参数管理UI服务 beego.Router("/", &pipe.IndexInfo{}, "*:Index") beego.Router("/index/list", &pipe.IndexInfo{}, "*:List") beego.Router("/index/edit", &pipe.IndexInfo{}, "*:Edit") beego.Router("/index/test", &pipe.IndexInfo{}, "*:Test") beego.Router("/index/help", &pipe.IndexInfo{}, "*:Help") beego.Router("/index/treedata", &pipe.IndexInfo{}, "*:TreeData") //启动数据同步 go pipe.StartAllSys() //启动https服务 go pipe.Https_start() //启动参数管理UI 服务 beego.Run() logger.Info("DaemonName=", cSvcName, "Daemon started.") for { time.Sleep(time.Hour) } }, func() { Stop() logger.Info("DaemonName=", cSvcName, "Daemon stoped.") }) }
func main() { logPath := getPath() // init log log.SetConsole(true) log.SetRollingDaily(logPath, "network.log") log.SetLevel(log.DEBUG) protocol := &packet.TransProtocolComm{} reactor := &ComReactor{} log.Debug("protocol addr is-", protocol) log.Debug("reactor addr is-", reactor) tcpServer := socket.NewTcpListenSock(protocol, reactor) log.Debug("TcpServer start!") tcpServer.InitTcpServer("localhost:9009") select {} }
func fmain() { logPath := getPath() // init log log.SetConsole(true) log.SetRollingDaily(logPath, "client.log") log.SetLevel(log.DEBUG) protocol := &packet.TransProtocolComm{} reactor := &ComReactor{} conn, err := socket.ConServer("localhost:9009") if err != nil { log.Error("conn failed") return } tcpClient := socket.NewTcpSocket(conn, protocol, reactor) tcpClient.Start() data := []byte{'h', 'e', 'l', 'l', 'o'} tcpClient.Write(data) select {} }
func (p *Workshop) Init(ctx *sj.Json, upCtrlChan chan int, upReportChan chan int, isTest bool) error { p.ctx = ctx p.upCtrlChan = upCtrlChan p.upReportChan = upReportChan p.processedLine = 0 var err error if err = p.initLog(isTest); err != nil { return err } logger.Debug("workshop init log success") if err = p.initSrcProvider(); err != nil { return err } logger.Debug("workshop init srcProvider success") p.cronTickInterval = ctx.Get("main").Get("cron_tick_interval").MustInt() p.memLimit = ctx.Get("main").Get("mem_limit").MustUint64() p.PRCtrlChan = make(chan int, 1000) // 1000 is enough p.PRReportChan = make(chan int) p.CLCtrlChan = make(chan int, 1000) // 1000 is enough p.CLReportChan = make(chan int) if err = p.initChannel(isTest); err != nil { return err } logger.Debug("workshop init channel and subroutine success") logger.Info("start... config:\n[", *p.ctx, "]\n") if isTest { p.provider.Destory() } logger.SetConsole(false) return nil }