Guest User

Untitled

a guest
Nov 16th, 2018
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "log"
  5. "os"
  6. "strings"
  7. "sync"
  8.  
  9. "github.com/kiwiirc/webircgateway/pkg/webircgateway"
  10. )
  11.  
  12. var errLog *log.Logger
  13.  
  14. func Start(gateway *webircgateway.Gateway, pluginsQuit *sync.WaitGroup) {
  15. gateway.Log(1, "IRC Error Logger plugin %s", webircgateway.Version)
  16.  
  17. logFile, err := os.OpenFile("error.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
  18. if err != nil {
  19. gateway.Log(3, "Unable to open log file for IRC Error logs: %s", err)
  20. return
  21. }
  22. errLog = log.New(logFile, "", log.LstdFlags)
  23.  
  24. webircgateway.HookRegister("irc.line", hookIrcLine)
  25.  
  26. pluginsQuit.Done()
  27. }
  28.  
  29. func hookIrcLine(hook *webircgateway.HookIrcLine) {
  30. if hook.Message.Command == "NOTICE" {
  31. if hook.Message.Params[0] != hook.Client.IrcState.Nick {
  32. return
  33. }
  34. line := strings.ToLower(hook.Line)
  35. if strings.Contains(line, "error") {
  36. errLog.Printf("%v %v", hook.UpstreamConfig.Hostname, hook.Line)
  37. }
  38. } else if hook.Message.Command == "ERROR" {
  39. errLog.Printf("%v %v", hook.UpstreamConfig.Hostname, hook.Line)
  40. }
  41. }
Add Comment
Please, Sign In to add comment