Beego(簡介、配置、路由、日誌)
參考資料
官方文件
https://beego.me/docs/intro/
官方Samples
- Web完整專案 聊天室專案
- API專案 Shorturl 專案
- 前後端分離專案 angularJS + API, Todo待辦事項的專案
https://github.com/beego/samples
Beego的簡介
中國人自己開發的Go應用框架,支援八大低耦合獨立的模組,同時支援bee小工具,快速開發Go的應用程式,另外還自帶了監控模組,類似於SpringBoot的 Actutar的功能
優點是大而全,缺點是過於臃腫了,在某些模組,比如mvc模組、orm模組,不如一些小而專的框架(Gin)
- Orm框架
- MVC路由
- 日誌模組
- 快取模組
- 配置檔案
- session管理
- RestFul
配置檔案的使用
bee工具生成的beego專案,會在conf路徑下有app.conf檔案,直接配置,然後就可以使用了。
包括了很多核心功能的配置:靜態資源路徑、埠、session、日誌配置、Web配置、App配置等等
- 配置常用的引數
- httpport
- 專案不同型別的資料的配置和讀取(字串、數字)
mysqluser = "root"
numb = 1000
beego.AppConfig.String("mysqluser")
num,err :=beego.AppConfig.Int64("numb")
可以通過在app.conf裡面include其它配置檔案來實現不同功能的配置檔案分開配置,比如database.conf檔案
支援類似於pom.xml的runmode配置,從而減少不同環境的配置修改的數量
runmode ="dev"
[dev]
httpport = 8080
[prod]
httpport = 8088
[test]
httpport = 8888
支援配置beego.BConfig.RouterCaseSensitive(預設true)屬性,來開啟路由字母大小寫的問題
AutoRender 屬性預設是開啟的,對於API型別的專案,應該手動關閉模板渲染功能
beego.BConfig.WebConfig.AutoRender = true
- 路由相關的配置 ViewsPath、TemplateLeft、TemplateRight、StaticDir
StaticDir="static" 靜態檔案css、js、圖片的路徑
TemplateLeft 模板左標籤,預設值是{{。
TemplateLeft="{{"
TemplateRight 模板右標籤,預設值是}}。
TemplateRight="}}"
ViewsPath 模板路徑,預設值是 views。
ViewsPath="views"
- 監控配置,8088埠,預設關閉,可以通過這個埠查詢到 QPS、CPU、記憶體、GC、goroutine、thread 等統計資訊。
EnableAdmin = false
AdminAddr = "localhost"
AdminPort = 8088
Beego 路由功能
特性:
- 模板檔案因為是預編譯的,所以預設模板檔案是無法熱載入的,和普通模式下的載入方式不同,但是提升了模板渲染的速度
- 模板檔案:預設支援 tpl 和 html 的字尾名
使用方式:
- 在 controllers裡面根據業務配置相應的方法,通過成員變數的方式,間接的繼承beego.Controller,並擁有了一些列常用的方法 Get() Post()等等
type MainController struct {
beego.Controller
}
func (c *MainController) Test() {
c.Data["Website"] = "QQQ"
c.Data["Email"] = "QQQ"
c.TplName = "index.tpl"
}
- 在 routers/router.go 裡面配置路由規則
func init() {
beego.Router("/", &controllers.MainController{})
beego.Router("/test", &controllers.MainController{},"get:Test")
}
- 在main包裡面,啟動初始化的方式 引用到router包,並且啟動beego
import (
_ "firstproject/routers"
"github.com/astaxie/beego"
)
func main() {
beego.Run()
}
註解式路由的使用
beego會自動進行原始碼分析,但是隻會在dev模式下生成,生成的路由放在/routers/commentsRouter_controllers.go
- routers.go檔案裡面,直接通過.Include的方式引入MainController
beego.Include(&controllers.MainController{})
- Controller檔案裡面,通過 // @router註解 實現對映
// @router / [get]
func (this *MainController) Index() {
this.TplName = "templates/index.html"
}
- runmode 必須是 dev環境才行
runmode = dev
直接返回資料
this.Ctx.WriteString("hello 1111")
Beego日誌功能
https://beego.me/docs/module/logs.md
依賴類庫"github.com/astaxie/beego/logs"
- Console日誌輸出
logs.Debug("my book is bought in the year of ", 2016)
logs.Info("this %s cat is %v years old", "yellow", 3)
logs.Warn("json is a type of kv like", map[string]int{"key": 2016})
logs.Error(1024, "is a very", "good game")
logs.Critical("oh,crash")
- 可以通過設定從而輸出到日誌檔案當中,因為預設用的是全域性的logs,所以可以在main裡面執行,就輸出到對應的目錄下面
//同時輸出到console和file
beego.SetLogger("file", `{"filename":"logs/test.log"}`)
//通過配置這個,可以只輸出到file當中
beego.BeeLogger.DelLogger("console")
- 預設級別 :LevelEmergency、LevelAlert、LevelCritical、LevelError、LevelWarning、LevelNotice、LevelInformational、LevelDebug
beego.SetLevel(beego.LevelInformational)
- logs.Async() 提升效能
Bee工具的安裝和使用
https://beego.me/docs/install/bee.md
常用命令
- bee new testproject:建立標準格式的go web專案
- bee api testApiProject: 建立一個API介面類的Go專案
安裝
- go get github.com/beego/bee
- 設定GOBIN 環境變數
相關文章
- MySQL日誌引數配置簡介MySql
- Springboot 整合logback 日誌框架簡介Spring Boot框架
- 日誌配置
- PostgreSQL DBA(3) - 日誌分析工具pgbadger簡介SQL
- 基於事件日誌的流程挖掘簡介 - Chaudhuri事件
- Django日誌配置Django
- Nginx日誌配置Nginx
- python日誌配置Python
- 01、路由策略簡介路由
- 【Spring】日誌列印sql,日誌配置列印sqlSpringSQL
- 簡單介紹MySQL列印死鎖日誌的方法MySql
- 日誌篇:模組日誌總體介紹
- Beego框架的一條神祕日誌引發的思考Go框架
- Symfony 路由配置簡述路由
- Apache 配置日誌切割Apache
- Spring Boot日誌配置Spring Boot
- 路由器功能簡介路由器
- Flutter路由框架Fluro簡介Flutter路由框架
- 01 . Go框架之Beego簡介部署及程式流程分析Go框架
- .netcore console 日誌和配置NetCore
- Django(37)配置django日誌Django
- Spring Boot logback日誌配置Spring Boot
- feign配置日誌不列印
- Mabatis配置錯誤日誌BAT
- Apach的配置和日誌
- 39,日誌列印sql 配置SQL
- FeignClient配置日誌訪問client
- Nginx日誌配置詳解Nginx
- 簡單介紹靜態路由路由
- Git 配置簡介Git
- SpringBoot多環境日誌配置Spring Boot
- MySQL InnoDB日誌檔案配置MySql
- mysql5.7 慢日誌配置MySql
- 使用logrotate配置日誌輪詢logrotate
- YARN的日誌聚集配置使用Yarn
- 路由器基礎介紹,及配置靜態路由,預設路由路由器
- 日誌收集之filebeat使用介紹
- 配置supervisor管理beego應用Go