app

package
v0.21.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 29, 2018 License: MIT Imports: 31 Imported by: 0

Documentation

Overview

Package app 核心功能的实现

Index

Constants

View Source
const (
	ConfigFilename = "web.yaml"
	LogsFilename   = "logs.xml"
)

框加需要用到的配置文件名。 实际路径需要通过 App.File 获取。

Variables

This section is empty.

Functions

func Grace

func Grace(app *App, sig ...os.Signal)

Grace 指定触发 Shutdown() 的信号,若为空,则任意信号都触发。

多次调用,则每次指定的信号都会起作用,如果由传递了相同的值, 则有可能多次触发 Shutdown()。

NOTE: 传递空值,与不调用,其结果是不同的。 若是不调用,则不会处理任何信号;若是传递空值调用,则是处理任何要信号。

Types

type App

type App struct {
	// contains filtered or unexported fields
}

App 程序运行实例

func New

func New(dir string) (*App, error)

New 声明一个新的 App 实例

日志系统会在此处初始化。 opt 参数在传递之后,再次修改,将不对 App 启作用。

func (*App) AddMiddlewares

func (app *App) AddMiddlewares(m ...middleware.Middleware) *App

AddMiddlewares 设置全局的中间件,可多次调用。

后添加的后调用。

func (*App) CRITICAL

func (app *App) CRITICAL() *log.Logger

CRITICAL 获取 CRITICAL 级别的 log.Logger 实例,在未指定 critical 级别的日志时,该实例返回一个 nil。

func (*App) Close

func (app *App) Close() error

Close 关闭服务。

无论配置文件如果设置,此函数都是直接关闭服务,不会等待。

func (*App) Config

func (app *App) Config() *config.Manager

Config 获取 config.Manager 的实例

func (*App) Critical

func (app *App) Critical(v ...interface{})

Critical 相当于 CRITICAL().Println(v...)的简写方式

func (*App) Criticalf

func (app *App) Criticalf(format string, v ...interface{})

Criticalf 相当于 CRITICAL().Printf(format, v...) 的简写方式

func (*App) DEBUG

func (app *App) DEBUG() *log.Logger

DEBUG 获取 DEBUG 级别的 log.Logger 实例,在未指定 debug 级别的日志时,该实例返回一个 nil。

func (*App) Debug

func (app *App) Debug(v ...interface{})

Debug 相当于 DEBUG().Println(v...) 的简写方式

func (*App) Debugf

func (app *App) Debugf(format string, v ...interface{})

Debugf 相当于 DEBUG().Printf(format, v...) 的简写方式

func (*App) ERROR

func (app *App) ERROR() *log.Logger

ERROR 获取 ERROR 级别的 log.Logger 实例,在未指定 error 级别的日志时,该实例返回一个 nil。

func (*App) Error

func (app *App) Error(v ...interface{})

Error 相当于 ERROR().Println(v...) 的简写方式

func (*App) ErrorHandlers added in v0.21.0

func (app *App) ErrorHandlers() *errorhandler.ErrorHandler

ErrorHandlers 错误处理功能

func (*App) Errorf

func (app *App) Errorf(format string, v ...interface{})

Errorf 相当于 ERROR().Printf(format, v...) 的简写方式

func (*App) Fatal

func (app *App) Fatal(code int, v ...interface{})

Fatal 输出错误信息,然后退出程序。

func (*App) Fatalf

func (app *App) Fatalf(code int, format string, v ...interface{})

Fatalf 输出错误信息,然后退出程序。

func (*App) File

func (app *App) File(path string) string

File 获取文件路径,相对于当前配置目录

func (*App) FlushLogs

func (app *App) FlushLogs()

FlushLogs 输出所有的缓存内容。

func (*App) GetMessage added in v0.21.0

func (app *App) GetMessage(code int) (*messages.Message, bool)

GetMessage 查找指定代码的错误信息

func (*App) INFO

func (app *App) INFO() *log.Logger

INFO 获取 INFO 级别的 log.Logger 实例,在未指定 info 级别的日志时,该实例返回一个 nil。

func (*App) Info

func (app *App) Info(v ...interface{})

Info 相当于 INFO().Println(v...) 的简写方式 Info 函数默认是带换行符的,若需要不带换行符的,请使用 DEBUG().Print() 函数代替。 其它相似函数也有类型功能。

func (*App) Infof

func (app *App) Infof(format string, v ...interface{})

Infof 相当于 INFO().Printf(format, v...) 的简写方式

func (*App) InitModules

func (app *App) InitModules(tag string) error

InitModules 执行模板的初始化函数。可以重复调用执行。

func (*App) IsDebug

func (app *App) IsDebug() bool

IsDebug 是否处于调试模式

func (*App) Load

func (app *App) Load(r io.Reader, typ string, v interface{}) error

Load 加载指定的配置文件内容到 v 中

func (*App) LoadFile

func (app *App) LoadFile(path string, v interface{}) error

LoadFile 加载指定的配置文件内容到 v 中

func (*App) Logs

func (app *App) Logs() *logs.Logs

Logs 获取 logs.Logs 实例

func (*App) Messages added in v0.21.0

func (app *App) Messages(p *message.Printer) map[int]string

Messages 获取所有的错误消息代码

如果指定 p 的值,则返回本地化的消息内容。

func (*App) Mimetypes

func (app *App) Mimetypes() *mimetype.Mimetypes

Mimetypes 返回 mimetype.Mimetypes

func (*App) Modules

func (app *App) Modules() []*module.Module

Modules 获取所有的模块信息

func (*App) Mux

func (app *App) Mux() *mux.Mux

Mux 返回 mux.Mux 实例。

func (*App) NewMessages added in v0.21.0

func (app *App) NewMessages(status int, msgs map[int]string)

NewMessages 添加新的错误消息

func (*App) NewModule

func (app *App) NewModule(name, desc string, deps ...string) *module.Module

NewModule 声明一个新的模块

func (*App) Panic

func (app *App) Panic(v ...interface{})

Panic 输出错误信息,然后触发 panic。

func (*App) Panicf

func (app *App) Panicf(format string, v ...interface{})

Panicf 输出错误信息,然后触发 panic。

func (*App) RegisterOnShutdown

func (app *App) RegisterOnShutdown(f func())

RegisterOnShutdown 等于于 http.Server.RegisterOnShutdown

func (*App) Serve

func (app *App) Serve() error

Serve 加载各个模块的数据,运行路由,执行监听程序。

当调用 Shutdown 关闭服务时,会等待其完成未完的服务,才返回 http.ErrServerClosed

func (*App) Shutdown

func (app *App) Shutdown() error

Shutdown 关闭所有服务。

根据配置文件中的配置项,决定当前是直接关闭还是延时之后关闭。

func (*App) TRACE

func (app *App) TRACE() *log.Logger

TRACE 获取 TRACE 级别的 log.Logger 实例,在未指定 trace 级别的日志时,该实例返回一个 nil。

func (*App) Tags added in v0.20.0

func (app *App) Tags() []string

Tags 获取所有的子模块名称

func (*App) Trace

func (app *App) Trace(v ...interface{})

Trace 相当于 TRACE().Println(v...) 的简写方式

func (*App) Tracef

func (app *App) Tracef(format string, v ...interface{})

Tracef 相当于 TRACE().Printf(format, v...) 的简写方式

func (*App) URL

func (app *App) URL(path string) string

URL 构建一条基于 app.webconfig.URL 的完整 URL

func (*App) WARN

func (app *App) WARN() *log.Logger

WARN 获取 WARN 级别的 log.Logger 实例,在未指定 warn 级别的日志时,该实例返回一个 nil。

func (*App) Warn

func (app *App) Warn(v ...interface{})

Warn 相当于 WARN().Println(v...) 的简写方式

func (*App) Warnf

func (app *App) Warnf(format string, v ...interface{})

Warnf 相当于 WARN().Printf(format, v...) 的简写方式

type Apps added in v0.21.0

type Apps struct {
	// contains filtered or unexported fields
}

Apps 多个 App 实例的集合。可以实现多站点服务。 相关功能可以在 https://github.com/issue9/web/issues/5 进行跟踪。

func NewApps added in v0.21.0

func NewApps(app ...*App) *Apps

NewApps 新的 Apps 实例。

func (*Apps) Serve added in v0.21.0

func (apps *Apps) Serve() error

Serve 运行服务

如果所有服务都结束,返回 http.ErrServeClosed 错误

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳