Skip to content

Commit

Permalink
Added LogDebug (#284)
Browse files Browse the repository at this point in the history
* Added LogDebug

* changed debug variable to logger
  • Loading branch information
kennedy committed Mar 29, 2020
1 parent b243708 commit 10109fb
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 30 deletions.
20 changes: 10 additions & 10 deletions cmd/teleirc.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,36 +23,36 @@ var (

func main() {
flag.Parse()

debug := internal.Debug { DebugLevel: *flagDebug }
logger := internal.Debug{DebugLevel: *flagDebug}

if *flagVersion {
debug.PrintVersion("Current TeleIRC version: " + version)
logger.PrintVersion("Current TeleIRC version:", version)
return
}

// Notify that debug is enabled
debug.LogInfo("Debug mode enabled!")
logger.LogInfo("Current TeleIRC version:", version)
// Notify that logger is enabled
logger.LogDebug("Debug mode enabled!")

settings, err := internal.LoadConfig(*flagPath)
if err != nil {
debug.LogError(err)
logger.LogError(err)
os.Exit(1)
}

var tgapi *tgbotapi.BotAPI
tgClient := tg.NewClient(settings.Telegram, tgapi, debug)
tgClient := tg.NewClient(settings.Telegram, tgapi, logger)
tgChan := make(chan error)

ircClient := irc.NewClient(settings.IRC, debug)
ircClient := irc.NewClient(settings.IRC, logger)
ircChan := make(chan error)
go ircClient.StartBot(ircChan, tgClient.SendMessage)
go tgClient.StartBot(tgChan, ircClient.SendMessage)

select {
case ircErr := <-ircChan:
debug.LogError(ircErr)
logger.LogError(ircErr)
case tgErr := <-tgChan:
debug.LogError(tgErr)
logger.LogError(tgErr)
}
}
21 changes: 14 additions & 7 deletions internal/debug.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,35 @@ import (
)

var (
logFlags = log.Ldate | log.Ltime
info = log.New(os.Stdout, "INFO: ", logFlags)
errorLog = log.New(os.Stderr, "ERROR: ", logFlags)
warning = log.New(os.Stderr, "WARNING: ", logFlags)
logFlags = log.Ldate | log.Ltime
info = log.New(os.Stdout, "INFO: ", logFlags)
debug = log.New(os.Stdout, "DEBUG: ", logFlags)
errorLog = log.New(os.Stderr, "ERROR: ", logFlags)
warning = log.New(os.Stderr, "WARNING: ", logFlags)
plain = log.New(os.Stdout, "", 0)
)

// DebugLogger provides an interface to call the logging functions
type DebugLogger interface {
LogInfo(v ...interface{})
LogDebug(v ...interface{})
LogError(v ...interface{})
LogWarning(v ...interface{})
PrintVersion(v ...interface{})
}

// Debug contains information about the debug level
type Debug struct {
DebugLevel bool
DebugLevel bool
}

func (d Debug) LogInfo(v ...interface{}) {
info.Println(v...)
}

func (d Debug) LogDebug(v ...interface{}) {
if d.DebugLevel {
info.Println(v...)
debug.Println(v...)
}
}

Expand All @@ -42,5 +49,5 @@ func (d Debug) LogWarning(v ...interface{}) {
}

func (d Debug) PrintVersion(v ...interface{}) {
info.Println(v...)
plain.Println(v...)
}
10 changes: 5 additions & 5 deletions internal/handlers/irc/handlers.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ so that the specified channel is joined after the server connection is establish
*/
func connectHandler(c Client) func(*girc.Client, girc.Event) {
return func(gc *girc.Client, e girc.Event) {
c.logger.LogInfo("connectHandler triggered")
c.logger.LogDebug("connectHandler triggered")
if c.Settings.ChannelKey != "" {
c.Cmd.JoinKey(c.Settings.Channel, c.Settings.ChannelKey)
} else {
Expand All @@ -40,7 +40,7 @@ and channel messages. However, it only cares about channel messages
*/
func messageHandler(c Client) func(*girc.Client, girc.Event) {
return func(gc *girc.Client, e girc.Event) {
c.logger.LogInfo("messageHandler triggered")
c.logger.LogDebug("messageHandler triggered")
formatted := c.Settings.Prefix + e.Source.Name + c.Settings.Suffix + " " + e.Params[1]
if e.IsFromChannel() {
c.sendToTg(formatted)
Expand All @@ -50,21 +50,21 @@ func messageHandler(c Client) func(*girc.Client, girc.Event) {

func joinHandler(c Client) func(*girc.Client, girc.Event) {
return func(gc *girc.Client, e girc.Event) {
c.logger.LogInfo("joinHandler triggered")
c.logger.LogDebug("joinHandler triggered")
c.sendToTg(fmt.Sprintf(joinFmt, e.Source.Name))
}
}

func partHandler(c Client) func(*girc.Client, girc.Event) {
return func(gc *girc.Client, e girc.Event) {
c.logger.LogInfo("partHandler triggered")
c.logger.LogDebug("partHandler triggered")
c.sendToTg(fmt.Sprintf(partFmt, e.Source.Name))
}
}

func quitHandler(c Client) func(*girc.Client, girc.Event) {
return func(gc *girc.Client, e girc.Event) {
c.logger.LogInfo("quitHandler triggered")
c.logger.LogDebug("quitHandler triggered")
c.sendToTg(fmt.Sprintf(quitFmt, e.Source.Name, e.Params[0]))
}
}
Expand Down
8 changes: 4 additions & 4 deletions internal/handlers/irc/irc.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ type Client struct {
/*
NewClient returns a new IRCClient based on the provided settings
*/
func NewClient(settings internal.IRCSettings, debug internal.DebugLogger) Client {
debug.LogInfo("Creating new IRC bot client...")
func NewClient(settings internal.IRCSettings, logger internal.DebugLogger) Client {
logger.LogInfo("Creating new IRC bot client...")
client := girc.New(girc.Config{
Server: settings.Server,
Port: settings.Port,
Expand All @@ -36,7 +36,7 @@ func NewClient(settings internal.IRCSettings, debug internal.DebugLogger) Client
Pass: settings.NickServPassword,
}
}
return Client{client, settings, debug, nil}
return Client{client, settings, logger, nil}
}

/*
Expand Down Expand Up @@ -70,7 +70,7 @@ that were passed in to NewClient
*/
func (c Client) addHandlers() {
for eventType, handler := range getHandlerMapping() {
c.logger.LogInfo("Adding IRC event handler:", eventType)
c.logger.LogDebug("Adding IRC event handler:", eventType)
c.Handlers.Add(eventType, handler(c))
}
}
8 changes: 4 additions & 4 deletions internal/handlers/telegram/telegram.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ type Client struct {
/*
NewClient creates a new Telegram bot client
*/
func NewClient(settings internal.TelegramSettings, tgapi *tgbotapi.BotAPI, debug internal.DebugLogger) *Client {
debug.LogInfo("Creating new Telegram bot client...")
return &Client{api: tgapi, Settings: settings, logger: debug}
func NewClient(settings internal.TelegramSettings, tgapi *tgbotapi.BotAPI, logger internal.DebugLogger) *Client {
logger.LogInfo("Creating new Telegram bot client...")
return &Client{api: tgapi, Settings: settings, logger: logger}
}

/*
Expand Down Expand Up @@ -56,7 +56,7 @@ func (tg *Client) StartBot(errChan chan<- error, sendMessage func(string)) {
tg.logger.LogError(err)
errChan <- err
}
tg.logger.LogInfo("Authorized on account",tg.api.Self.UserName)
tg.logger.LogDebug("Authorized on account",tg.api.Self.UserName)
tg.sendToIrc = sendMessage

u := tgbotapi.NewUpdate(0)
Expand Down

0 comments on commit 10109fb

Please sign in to comment.