app

package
v0.20.0 Latest Latest
Warning

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

Go to latest
Published: Dec 16, 2018 License: MIT Imports: 27 Imported by: 0

Documentation

Overview

Package app 核心功能的实现

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExitContext

func ExitContext(status int)

ExitContext 以指定的状态码退出当前协程

status 表示输出的状态码,如果为 0,则不会作任何状态码输出。

ExitContext 最终是以 panic 的形式退出,所以如果你的代码里截获了 panic, 那么 ExitContext 并不能达到退出当前请求的操作。

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) AddErrorHandler

func (app *App) AddErrorHandler(f ErrorHandler, status ...int) error

AddErrorHandler 添加针对特写状态码的错误处理函数

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) 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) 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) 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) 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) RenderError

func (app *App) RenderError(w http.ResponseWriter, status int)

RenderError 向客户端输出指定状态码的错误内容。

func (*App) Serve

func (app *App) Serve() error

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

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

func (*App) SetErrorHandler

func (app *App) SetErrorHandler(f ErrorHandler, status ...int)

SetErrorHandler 设置指定状态码对应的处理函数

有则修改,没有则添加

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 ErrorHandler

type ErrorHandler func(http.ResponseWriter, int)

ErrorHandler 错误处理函数

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL