本文整理汇总了Golang中github.com/gogap/logrus_mate.Options类的典型用法代码示例。如果您正苦于以下问题:Golang Options类的具体用法?Golang Options怎么用?Golang Options使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Options类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: NewSlackHook
func NewSlackHook(options logrus_mate.Options) (hook logrus.Hook, err error) {
conf := SlackHookConfig{}
if err = options.ToObject(&conf); err != nil {
return
}
levels := []logrus.Level{}
if conf.Levels != nil {
for _, level := range conf.Levels {
if lv, e := logrus.ParseLevel(level); e != nil {
err = e
return
} else {
levels = append(levels, lv)
}
}
}
if len(levels) == 0 && conf.Levels != nil {
levels = append(levels, logrus.ErrorLevel, logrus.PanicLevel, logrus.FatalLevel)
}
hook = &slackrus.SlackrusHook{
HookURL: conf.URL,
AcceptedLevels: levels,
Channel: conf.Channel,
IconEmoji: conf.Emoji,
Username: conf.Username,
}
return
}
示例2: NewRedisIOWriter
func NewRedisIOWriter(options logrus_mate.Options) (writer io.Writer, err error) {
conf := RedisIOConfig{}
if err = options.ToObject(&conf); err != nil {
return
}
if conf.ListName == "" {
err = errors.New("logurs mate: redisio's list name is empty")
return
}
if conf.Network == "" {
conf.Network = "tcp"
}
if conf.Address == "" {
conf.Address = "127.0.0.1:6379"
}
var redisCli *redis.Client
redisOpt := &redis.Options{
Network: conf.Network,
Addr: conf.Address,
Password: conf.Password,
DB: conf.Db,
}
redisCli = redis.NewClient(redisOpt)
writer, err = redisio.NewWriter(redisCli, conf.ListName)
return
}
示例3: NewSyslogHook
func NewSyslogHook(options logrus_mate.Options) (hook logrus.Hook, err error) {
conf := SyslogHookConfig{}
if err = options.ToObject(&conf); err != nil {
return
}
return logrus_syslog.NewSyslogHook(
conf.Network,
conf.Address,
toPriority(conf.Priority),
conf.Tag)
}
示例4: NewAirbrakeHook
func NewAirbrakeHook(options logrus_mate.Options) (hook logrus.Hook, err error) {
conf := AirbrakeHookConfig{}
if err = options.ToObject(&conf); err != nil {
return
}
hook = airbrake.NewHook(
int64(conf.ProjectId),
conf.APIKey,
conf.Env)
return
}
示例5: NewGraylogHook
func NewGraylogHook(options logrus_mate.Options) (hook logrus.Hook, err error) {
conf := GraylogHookConfig{}
if err = options.ToObject(&conf); err != nil {
return
}
hook = graylog.NewAsyncGraylogHook(
conf.Address,
conf.Extra)
return
}
示例6: NewMailHook
func NewMailHook(options logrus_mate.Options) (hook logrus.Hook, err error) {
conf := MailHookConfig{}
if err = options.ToObject(&conf); err != nil {
return
}
hook, err = logrus_mail.NewMailAuthHook(
conf.AppName,
conf.Host,
conf.Port,
conf.From,
conf.To,
conf.Username,
conf.Password)
return
}
示例7: NewBugsnagHook
func NewBugsnagHook(options logrus_mate.Options) (hook logrus.Hook, err error) {
conf := BugsnagHookConfig{}
if err = options.ToObject(&conf); err != nil {
return
}
bugsnag.Configure(bugsnag.Configuration{
Endpoint: conf.Endpoint,
ReleaseStage: conf.ReleaseStage,
APIKey: conf.APIKey,
Synchronous: conf.Synchronous,
})
hook, err = logrus_bugsnag.NewBugsnagHook()
return
}