• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang logs.Logger类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/purstal/go-tieba-base/logs.Logger的典型用法代码示例。如果您正苦于以下问题:Golang Logger类的具体用法?Golang Logger怎么用?Golang Logger使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了Logger类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: LoadStrings

func LoadStrings(file *os.File, set *map[string]struct{}, logger *logs.Logger) error {
	bytes, err := ReadAll(file)
	if err != nil {
		return err
	}

	lines := split([]rune(string(bytes)), []rune{'\n', ' '})

	newSet := map[string]struct{}{}

	oldSet := map[string]struct{}{}

	for k, v := range *set {
		oldSet[k] = v //复制一遍
	}

	var added []string

	for _, _line := range lines {
		var line string
		if line = strings.TrimSpace(string(_line)); line == "" {
			continue
		}
		newSet[line] = struct{}{}
		if _, exist := oldSet[line]; !exist {
			added = append(added, line)
		}
		delete(oldSet, line)
	}

	*set = newSet

	var updateInfo string = fmt.Sprintf("更新关键词(%s):", file.Name())
	if len(added) > 0 {
		updateInfo = updateInfo + "\n[+]"
		for _, str := range added {
			updateInfo = updateInfo + str + " "
		}
		updateInfo = strings.TrimRight(updateInfo, " ")
	}
	if len(oldSet) > 0 {
		updateInfo = updateInfo + "\n[-]"
		for str, _ := range oldSet {
			updateInfo = updateInfo + str + " "
		}
		updateInfo = strings.TrimRight(updateInfo, " ")
	}
	logger.Info(updateInfo)

	return nil
}
开发者ID:qida,项目名称:tieba-post-deleter,代码行数:51,代码来源:string.go


示例2: newStrKwManager

func newStrKwManager(fileName string, logger *logs.Logger) *kw_manager.StringKeywordManager {
	var m *kw_manager.StringKeywordManager
	var err error
	if fileName != "" {
		m, err =
			kw_manager.NewStringKeywordManagerBidingWithFile(
				fileName, time.Second, logger)
		if err != nil {
			logger.Error("无法创建string关键词管理.", err)
			panic(err)
		}
		return m
	} else {
		logger.Warn("未设置string关键词文件")
		return kw_manager.NewStringKeywordManager(logger)
	}
}
开发者ID:qida,项目名称:tieba-post-deleter,代码行数:17,代码来源:post-deleter.go


示例3: NewMessageMonitor

func NewMessageMonitor(logger *logs.Logger, interval time.Duration, acc *postbar.Account, lastFoundPid uint64) *MessageMonitor {
	var monitor MessageMonitor
	monitor.Interval = interval
	monitor.MessageChan = make(chan message.ReplyMessage)
	monitor.actChan = make(chan action.Action)

	go func() {

		ticker := time.NewTicker(monitor.Interval)
		for {

			msgs, _lastFoundPid, err, pberr := checkReply(acc, lastFoundPid)
			if len(msgs) > 0 {
				if err != nil {
					logger.Error("无法获取消息提醒", err)
					continue
				} else if pberr != nil && pberr.ErrorCode != 0 {
					logger.Error("无法获取消息提醒", pberr)
					continue
				}
				lastFoundPid = _lastFoundPid
				for _, msg := range msgs {
					monitor.MessageChan <- msg
				}
			}

			select {
			case <-ticker.C:
			case act := <-monitor.actChan:
				switch act.Pattern {
				case Stop:
					ticker.Stop()
					//logs.Debug("喵")
					close(monitor.MessageChan)
					//logs.Debug("喵喵")
					close(monitor.actChan)
					//logs.Debug("将解引赋值:", lastFoundPid)
					*(act.Param.(*chan uint64)) <- lastFoundPid
					return
				}
			}
		}
	}()
	return &monitor
}
开发者ID:Purstal,项目名称:go-tieba-modules,代码行数:45,代码来源:message-monitor.go


示例4: NewRegexpKeywordManagerBidingWithFile

func NewRegexpKeywordManagerBidingWithFile(keyWordFileFlieName string,
	checkInterval time.Duration, logger *logs.Logger) (*RegexpKeywordManager, error) {
	var m RegexpKeywordManager
	m.FileName = keyWordFileFlieName

	file, err := os.Open(m.FileName)
	if os.IsNotExist(err) {
		var err error
		file, err = os.Create(m.FileName)
		if err != nil {
			return nil, err
		}
	} else if err != nil {
		return nil, err
	} else {
		err := LoadExps(file, &m.KewWordExps, logger)
		if err != nil {
			return nil, err
		}
	}

	if fi, err := file.Stat(); err != nil {
		return nil, err
	} else {
		m.LastModTime = fi.ModTime()
	}
	file.Close()

	m.CheckInterval = checkInterval
	m.actChan = make(chan action.Action)

	go func() {
		ticker := time.NewTicker(m.CheckInterval)
		for {
			select {
			case <-ticker.C:
			case act := <-m.actChan:
				switch act.Pattern {
				case ChangeInterval:
					ticker.Stop()
					ticker = time.NewTicker(act.Param.(time.Duration))
				case ChangeFile:
				}
				continue
			}
			file, err1 := os.Open(m.FileName)
			if err1 != nil {
				logger.Error("无法打开关键词文件,跳过本次.", err1, ".")
				continue
			}
			func() {
				defer func() { file.Close() }()
				fi, err2 := file.Stat()
				if err2 != nil {
					logger.Error("无法获取文件信息,跳过本次.", err2, ".")
					return
				}
				if modTime := fi.ModTime(); modTime != m.LastModTime {
					err := LoadExps(file, &m.KewWordExps, logger)
					if err != nil {
						logger.Error("无法更新关键词,下次修改前将不尝试读取.", err, ".")
					}
					m.LastModTime = modTime
				}
			}()
		}
	}()

	return &m, nil
}
开发者ID:qida,项目名称:tieba-post-deleter,代码行数:70,代码来源:regexp.go


示例5: LoadExps

func LoadExps(file *os.File, exps *[]RegexpKeyword, logger *logs.Logger) error {

	bytes, err := ReadAll(file)
	if err != nil {
		return err
	}

	lines := strings.Split(string(bytes), "\n")

	oldExps := make(map[string]RegexpKeyword)

	for _, exp := range *exps {
		if exp.BanFlag {
			oldExps["$ban "+exp.Rx.String()] = exp
		} else {
			oldExps[exp.Rx.String()] = exp
		}
	}

	newExps := make(map[string]RegexpKeyword)
	var addedExps []string

	for lineNo, line := range lines {
		line = strings.TrimRightFunc(line, func(r rune) bool {
			return r == '\n' || r == '\r'
		})
		if line == "" {
			continue
		}
		if exp, exist := oldExps[line]; exist {
			newExps[line] = exp
			delete(oldExps, line)
		} else {
			var banFlag bool
			var newExp *regexp.Regexp
			var err error
			if banFlag = strings.HasPrefix(line, "$ban "); banFlag {
				newExp, err = regexp.Compile(strings.TrimLeft(line, "$ban "))
			} else {
				newExp, err = regexp.Compile(line)
			}
			if err != nil {
				logs.Error(fmt.Sprintf("不正确的关键词(第%d行),跳过.", lineNo), err)
			} else {
				newExps[line] = RegexpKeyword{banFlag, newExp}
				addedExps = append(addedExps, line)
			}

		}
	}

	newExpSlice := make([]RegexpKeyword, 0, len(newExps))

	for _, exp := range newExps {
		newExpSlice = append(newExpSlice, exp)
	}

	*exps = newExpSlice

	var updateInfo string = fmt.Sprintf("更新关键词(%s):\n", file.Name())
	for _, exp := range addedExps {
		updateInfo = updateInfo + "[+] " + exp + "\n"
	}
	for _, exp := range oldExps {
		if exp.BanFlag {
			updateInfo = updateInfo + "[-] $ban" + exp.Rx.String() + "\n"
		} else {
			updateInfo = updateInfo + "[-] " + exp.Rx.String() + "\n"
		}
	}
	updateInfo = strings.TrimSuffix(updateInfo, "\n")
	logger.Info(updateInfo)

	//logger.Debug("现在的关键词:", newExpSlice, ".")

	return nil
}
开发者ID:qida,项目名称:tieba-post-deleter,代码行数:77,代码来源:regexp.go



注:本文中的github.com/purstal/go-tieba-base/logs.Logger类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang egoscale.NewClient函数代码示例发布时间:2022-05-28
下一篇:
Golang cmdline.Cmdline类代码示例发布时间:2022-05-28
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap