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
- 日誌工具logback的簡介與配置
- Oracle RAC叢集、程式、日誌簡介Oracle
- 日誌配置
- 基於事件日誌的流程挖掘簡介 - Chaudhuri事件
- syslog簡介——系統日誌寫入APIAPI
- Linux日誌管理神器logrotate使用簡介Linuxlogrotate
- Nginx日誌配置Nginx
- Django日誌配置Django
- 01、路由策略簡介路由
- 日誌篇:模組日誌總體介紹
- beego 路由跳轉問題Go路由
- 告警日誌介紹
- Springboot 整合logback 日誌框架簡介Spring Boot框架
- PostgreSQL DBA(3) - 日誌分析工具pgbadger簡介SQL
- 簡單介紹MySQL列印死鎖日誌的方法MySql
- MySQL各種日誌的簡介和設定方法MySql
- Beego框架的一條神祕日誌引發的思考Go框架
- python日誌配置Python
- nginx日誌切割配置Nginx
- Apache 配置日誌切割Apache
- Flutter路由框架Fluro簡介Flutter路由框架
- 路由器功能簡介路由器
- 【Spring】日誌列印sql,日誌配置列印sqlSpringSQL
- spring boot 日誌介紹 以及 logback配置示例Spring Boot
- jclouds日誌工具介紹Cloud
- 怎樣利用路由器日誌排除路由器故障路由器
- 01 . Go框架之Beego簡介部署及程式流程分析Go框架
- Spring Boot日誌配置Spring Boot
- Django(37)配置django日誌Django
- 39,日誌列印sql 配置SQL
- Mabatis配置錯誤日誌BAT
- Apach的配置和日誌
- Nginx日誌配置詳解Nginx
- mybatis列印sql日誌配置MyBatisSQL
- PostgreSQL歸檔日誌配置SQL
- Android軟體測試的日誌檔案抓取簡介Android
- PSU簡介和11.2.0.2.9 PSU補丁操作日誌