本文整理汇总了Golang中github.com/apex/log.Interface类的典型用法代码示例。如果您正苦于以下问题:Golang Interface类的具体用法?Golang Interface怎么用?Golang Interface使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Interface类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: NewGameHub
// NewGameHub creates a new GameHub for a given log contenxt.
func NewGameHub(ctx log.Interface) GameHub {
return GameHub{
Log: ctx.WithField("module", "GameHub"),
games: make(map[string]Game),
register: make(chan GameRegistrationRequest),
}
}
示例2: GetHandlerManager
// GetHandlerManager gets a new HandlerManager for ttnctl
func GetHandlerManager(ctx log.Interface, appID string) (*grpc.ClientConn, *handler.ManagerClient) {
ctx.WithField("Handler", viper.GetString("handler-id")).Info("Discovering Handler...")
dscConn, client := GetDiscovery(ctx)
defer dscConn.Close()
handlerAnnouncement, err := client.Get(GetContext(ctx), &discovery.GetRequest{
ServiceName: "handler",
Id: viper.GetString("handler-id"),
})
if err != nil {
ctx.WithError(errors.FromGRPCError(err)).Fatal("Could not find Handler")
}
token := TokenForScope(ctx, scope.App(appID))
ctx.WithField("Handler", handlerAnnouncement.NetAddress).Info("Connecting with Handler...")
hdlConn, err := handlerAnnouncement.Dial()
if err != nil {
ctx.WithError(err).Fatal("Could not connect to Handler")
}
managerClient, err := handler.NewManagerClient(hdlConn, token)
if err != nil {
ctx.WithError(err).Fatal("Could not create Handler Manager")
}
return hdlConn, managerClient
}
示例3: SetApp
// SetApp stores the app ID and app EUI preferences
func SetApp(ctx log.Interface, appID string, appEUI types.AppEUI) {
config := readData(appFilename)
config[idKey] = appID
config[euiKey] = appEUI.String()
err := writeData(appFilename, config)
if err != nil {
ctx.WithError(err).Fatal("Could not save app preference")
}
}
示例4: ForceRefreshToken
// ForceRefreshToken forces a refresh of the access token
func ForceRefreshToken(ctx log.Interface) {
tokenSource := GetTokenSource(ctx).(*ttnctlTokenSource)
token, err := tokenSource.Token()
if err != nil {
ctx.WithError(err).Fatal("Could not get access token")
}
token.Expiry = time.Now().Add(-1 * time.Second)
tokenSource.source = oauth2.ReuseTokenSource(token, getAccountServerTokenSource(token))
tokenSource.Token()
}
示例5: NewGateway
// NewGateway creates a new in-memory Gateway structure
func NewGateway(ctx log.Interface, id string) *Gateway {
ctx = ctx.WithField("GatewayID", id)
return &Gateway{
ID: id,
Status: NewStatusStore(),
Utilization: NewUtilization(),
Schedule: NewSchedule(ctx),
Ctx: ctx,
}
}
示例6: NewGameState
// NewGameState creates a new game state given a logging context.
func NewGameState(ctx log.Interface) GameState {
return GameState{
Users: make(map[*User]bool),
Shots: make(map[*Shot]bool),
Log: ctx.WithField("module", "GameState"),
UpdateInterval: DefaultStateUpdateLoopInterval,
simulate: make(chan []Command),
updateState: make(chan *GameState),
}
}
示例7: saveToken
func saveToken(ctx log.Interface, token *oauth2.Token) {
data, err := json.Marshal(token)
if err != nil {
ctx.WithError(err).Fatal("Could not save access token")
}
err = GetTokenCache().Set(tokenName(), data)
if err != nil {
ctx.WithError(err).Fatal("Could not save access token")
}
}
示例8: GetAccount
// GetAccount gets a new Account server client for ttnctl
func GetAccount(ctx log.Interface) *account.Account {
token, err := GetTokenSource(ctx).Token()
if err != nil {
ctx.WithError(err).Fatal("Could not get access token")
}
server := viper.GetString("auth-server")
manager := GetTokenManager(token.AccessToken)
return account.NewWithManager(server, token.AccessToken, manager).WithHeader("User-Agent", GetUserAgent())
}
示例9: NewServer
// NewServer sets up a new server instance.
func NewServer(ctx log.Interface, address, templateFilename string) Server {
return Server{
Log: ctx.WithFields(log.Fields{
"module": "Server",
"address": address,
}),
IndexTemplate: template.Must(template.ParseFiles(templateFilename)),
Address: address,
Hub: NewGameHub(ctx),
}
}
示例10: NewUser
// NewUser creates a new user with a new Gopher to manage the user's new ws
// connection.
func NewUser(ctx log.Interface, ws *websocket.Conn) User {
id := uuid.NewRandom().String()[:3]
return User{
ID: id,
Gopher: NewGopher(id, RandomCoordinates(boardSize)),
Log: ctx.WithField("module", "User"),
send: make(chan []byte, 256),
ws: ws,
}
}
示例11: TokenForScope
func TokenForScope(ctx log.Interface, scope string) string {
token, err := GetTokenSource(ctx).Token()
if err != nil {
ctx.WithError(err).Fatal("Could not get token")
}
restricted, err := GetTokenManager(token.AccessToken).TokenForScope(scope)
if err != nil {
ctx.WithError(err).Fatal("Could not get correct rights")
}
return restricted
}
示例12: GetContext
// GetContext returns a new context
func GetContext(ctx log.Interface, extraPairs ...string) context.Context {
token, err := GetTokenSource(ctx).Token()
if err != nil {
ctx.WithError(err).Fatal("Could not get token")
}
md := metadata.Pairs(
"id", GetID(),
"service-name", "ttnctl",
"service-version", fmt.Sprintf("%s-%s (%s)", viper.GetString("version"), viper.GetString("gitCommit"), viper.GetString("buildDate")),
"token", token.AccessToken,
)
return metadata.NewContext(context.Background(), md)
}
示例13: GetDiscovery
// GetDiscovery gets the Discovery client for ttnctl
func GetDiscovery(ctx log.Interface) (*grpc.ClientConn, discovery.DiscoveryClient) {
path := path.Join(GetDataDir(), "/ca.cert")
cert, err := ioutil.ReadFile(path)
if err == nil && !api.RootCAs.AppendCertsFromPEM(cert) {
ctx.Warnf("Could not add root certificates from %s", path)
}
conn, err := api.Dial(viper.GetString("discovery-address"))
if err != nil {
ctx.WithError(err).Fatal("Could not connect to Discovery server")
}
return conn, discovery.NewDiscoveryClient(conn)
}
示例14: GetAppID
// GetAppID returns the AppID that must be set in the command options or config
func GetAppID(ctx log.Interface) string {
appID := viper.GetString("app-id")
if appID == "" {
appData := readData(appFilename)
id, ok := appData[idKey].(string)
if !ok {
ctx.Fatal("Invalid appID in config file.")
}
appID = id
}
if appID == "" {
ctx.Fatal("Missing AppID. You should select an application to use with \"ttnctl applications select\"")
}
return appID
}
示例15: NewGame
// NewGame creates a new game instance.
func NewGame(ctx log.Interface, id string) Game {
gs := NewGameState(ctx)
cp := NewCommandProcessor(&gs)
return Game{
Log: ctx.WithFields(log.Fields{
"module": "Game",
"id": id,
}),
State: &gs,
CommandProcessor: &cp,
register: make(chan *User),
unregister: make(chan *User),
commands: make(chan Command),
}
}