在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
前情回顾前文我们完成了日志管理系统后台开发。 本节目标这次为日志管理搭建一个web管理平台,可以通过web端录入项目和配置信息,以及项目对应的日志路径和采集信息,并且写入etcd, 选择beego作为web后台开发web端采用beego框架进行开发,beego是一个采用mvc三层架构设计的web框架。这里阐述下web管理平台的架构和功能。 代码流程main函数中初始化插件,并且启动beego func init_components() bool { err := components.InitLogger() //调用logger初始化 if err != nil { logs.Warn("initDb failed, err :%v", err) return false } err = components.InitDb() if err != nil { logs.Warn("initDb failed, err:%v", err) return false } err = components.InitEtcd() if err != nil { logs.Warn("init etcd failed, err:%v", err) return false } return true } func main() { if init_components() == false { return } beego.Run() } 插件初始化具体可以查看我的源码,之后在最下方我给出源码链接。 func init() { beego.Router("/index", &AppController.AppController{}, "*:AppList") beego.Router("/app/list", &AppController.AppController{}, "*:AppList") beego.Router("/app/apply", &AppController.AppController{}, "*:AppApply") beego.Router("/app/create", &AppController.AppController{}, "*:AppCreate") beego.Router("/log/apply", &LogController.LogController{}, "*:LogApply") beego.Router("/log/list", &LogController.LogController{}, "*:LogList") beego.Router("/log/create", &LogController.LogController{}, "*:LogCreate") } /index为首页展示 func (p *AppController) AppList() { logs.Debug("enter index controller") p.Layout = "layout/layout.html" appList, err := model.GetAllAppInfo() if err != nil { p.Data["Error"] = fmt.Sprintf("服务器繁忙") p.TplName = "app/error.html" logs.Warn("get app list failed, err:%v", err) return } logs.Debug("get app list succ, data:%v", appList) p.Data["applist"] = appList p.TplName = "app/index.html" } 可以看到我们设置了布局文件和模板文件,并且调用models获取所有项目的信息,然后设置到data中,通过模板返回。 func GetAllAppInfo() (appList []AppInfo, err error) { err = Db.Select(&appList, "select app_id, app_name, app_type, create_time, develop_path from tbl_app_info") if err != nil { logs.Warn("Get All App Info failed, err:%v", err) return } return } model通过查询数据库将项目信息返回。这些数据存储在mysql表中。这里其实是通过orm映射, type AppInfo struct { AppId int `db:"app_id"` AppName string `db:"app_name"` AppType string `db:"app_type"` CreateTime string `db:"create_time"` DevelopPath string `db:"develop_path"` IP []string } 测试web管理平台我们点击项目申请,填写项目信息 源码下载https://github.com/secondtonone1/golang-/tree/master/logcatchsys |
请发表评论