From 4f5dedee09c8d0df52321b7a544fb216fa53f882 Mon Sep 17 00:00:00 2001 From: Rasit <12167194+rasitds@users.noreply.github.com> Date: Sun, 19 Jan 2025 21:42:18 +0300 Subject: [PATCH] feat: improve logging (#532) --- apps/discord-bot/internal/command/command.go | 10 +++--- apps/twitch-bot/internal/command/addtimer.go | 4 +-- apps/twitch-bot/internal/command/command.go | 8 ++--- helper/helpers.go | 2 +- pkg/twitchapi/twitch.go | 38 ++++++++++---------- 5 files changed, 31 insertions(+), 31 deletions(-) diff --git a/apps/discord-bot/internal/command/command.go b/apps/discord-bot/internal/command/command.go index 8cd09430..14dd33d9 100644 --- a/apps/discord-bot/internal/command/command.go +++ b/apps/discord-bot/internal/command/command.go @@ -109,7 +109,7 @@ func (c *commands) Respond(ctx context.Context, m *discordgo.MessageCreate, cmdN func (c *commands) runCustomCommand(ctx context.Context, cmdName string, mC *discordgo.MessageCreate) { cmdData, err := c.service.GetUserBotCommand(ctx, cmdName, mC.GuildID) if err != nil { - log.Println("[USER COMMAND ERROR]:", err.Error()) + log.Println("[runCustomCommand] USER BOT COMMAND ERROR:", err.Error()) } if cmdData != nil { cmdVar := helpers.GetCommandVariables(c.dS, cmdData, mC) @@ -124,7 +124,7 @@ func (c *commands) runSystemCommand(ctx context.Context, cmdName string, params if cmd, ok := cmds[cmdName]; ok { cmdResp, err := cmd(ctx, m, cmdName, params) if err != nil { - log.Println("[SYSTEM COMMAND ERROR]:", err.Error()) + log.Println("[runSystemCommand] SYSTEM COMMAND ERROR:", err.Error()) return } c.Respond(ctx, m, cmdName+" "+strings.Join(params, " "), cmdResp.Message) @@ -140,7 +140,7 @@ func (c *commands) Run(ctx context.Context, cmdName string, params []string, m * // HANDLE COMMAND ALIASES commandAlias, cmdAliasErr := c.service.GetCommandAlias(ctx, cmdName, m.GuildID) if cmdAliasErr != nil { - log.Println("[COMMAND ALIAS ERROR]:", cmdAliasErr.Error()) + log.Println("[command.Run] COMMAND ALIAS ERROR:", cmdAliasErr.Error()) } if commandAlias != nil { @@ -159,7 +159,7 @@ func (c *commands) Run(ctx context.Context, cmdName string, params []string, m * // GLOBAL COMMANDS cmdData, err := c.service.GetGlobalBotCommand(ctx, cmdName) if err != nil { - log.Println("[GLOBAL COMMAND ERROR]:", err.Error()) + log.Println("[command.Run] GLOBAL COMMAND ERROR:", err.Error()) return } if cmdData == nil { @@ -186,7 +186,7 @@ func (c *commands) setCommandCooldown(username string) { } func deployCommands(discordClient *discordgo.Session) { - log.Println("DEPLOYING SLASH COMMANDS...") + log.Println("[deployCommands] Deploying slash commands...") registeredCommands := make([]*discordgo.ApplicationCommand, len(commandMetadatas)) for i, v := range commandMetadatas { cmd, err := discordClient.ApplicationCommandCreate(os.Getenv("CLIENT_ID"), "", v) diff --git a/apps/twitch-bot/internal/command/addtimer.go b/apps/twitch-bot/internal/command/addtimer.go index 7903d1c4..99b2978f 100644 --- a/apps/twitch-bot/internal/command/addtimer.go +++ b/apps/twitch-bot/internal/command/addtimer.go @@ -53,7 +53,7 @@ func (c *commands) AddTimerCommand(context context.Context, message twitch.Priva cmdTimers, err := c.service.GetCommandTimers(context, channelId) if err != nil { - log.Println("There was an error while getting command timers errors: " + err.Error()) + log.Println("[command.AddTimerCommand] There was an error while getting command timers errors: " + err.Error()) cmdResp.Message = config.ErrorMessage + "CT2" return &cmdResp, nil } @@ -65,7 +65,7 @@ func (c *commands) AddTimerCommand(context context.Context, message twitch.Priva ok, err := c.service.CreateCommandTimer(context, channelId, commandData.CommandName, interval) if err != nil { - log.Println(err.Error()) + log.Println("[command.AddTimerCommand] " + err.Error()) if ok { cmdResp.Message = err.Error() return &cmdResp, nil diff --git a/apps/twitch-bot/internal/command/command.go b/apps/twitch-bot/internal/command/command.go index c31a3f5f..983f0719 100644 --- a/apps/twitch-bot/internal/command/command.go +++ b/apps/twitch-bot/internal/command/command.go @@ -86,7 +86,7 @@ func (c *commands) Respond(ctx context.Context, message twitch.PrivateMessage, c func (c *commands) runCustomCommand(ctx context.Context, cmdName string, privMsg twitch.PrivateMessage) { cmdData, err := c.service.GetUserBotCommand(ctx, cmdName, privMsg.RoomID) if err != nil { - log.Println("[USER COMMAND ERROR]:", err.Error()) + log.Println("[runCustomCommand] USER BOT COMMAND ERROR:", err.Error()) } if cmdData != nil { cmdVar := helpers.GetCommandVariables(cmdData, privMsg) @@ -102,7 +102,7 @@ func (c *commands) runSystemCommand(ctx context.Context, cmdName string, params if cmd, ok := cmds[cmdName]; ok { cmdResp, err := cmd(ctx, privMsg, cmdName, params) if err != nil { - log.Println("[SYSTEM COMMAND ERROR]:", err.Error()) + log.Println("[runSystemCommand] SYSTEM COMMAND ERROR:", err.Error()) return } if cmdResp != nil { @@ -120,7 +120,7 @@ func (c *commands) Run(ctx context.Context, cmdName string, params []string, pri // HANDLE COMMAND ALIASES commandAlias, cmdAliasErr := c.service.GetCommandAlias(ctx, cmdName, privMsg.RoomID) if cmdAliasErr != nil { - log.Println("[COMMAND ALIAS ERROR]:", cmdAliasErr.Error()) + log.Println("[command.Run] COMMAND ALIAS ERROR:", cmdAliasErr.Error()) } if commandAlias != nil { @@ -141,7 +141,7 @@ func (c *commands) Run(ctx context.Context, cmdName string, params []string, pri cmdName = strings.ToLower(cmdName) cmdData, err := c.service.GetGlobalBotCommand(ctx, cmdName) if err != nil { - log.Println("[GLOBAL COMMAND ERROR]:", err.Error()) + log.Println("[command.Run] GLOBAL COMMAND ERROR:", err.Error()) return } if cmdData == nil { diff --git a/helper/helpers.go b/helper/helpers.go index e21bfac7..56c9c1fb 100644 --- a/helper/helpers.go +++ b/helper/helpers.go @@ -232,7 +232,7 @@ func ValidateCommandContentLength(commandContent string) (string, bool) { func StrToInt(intervalStr string) (int, error) { interval, err := strconv.Atoi(intervalStr) if err != nil { - log.Println("strconv.Atoi err", err) + log.Println("[StrToInt] Conversion error:", err) return 0, errors.New("the interval value must be integer") } diff --git a/pkg/twitchapi/twitch.go b/pkg/twitchapi/twitch.go index 7cea0828..ebab630e 100644 --- a/pkg/twitchapi/twitch.go +++ b/pkg/twitchapi/twitch.go @@ -18,7 +18,7 @@ func (s *service) doRequest(method string, path string, token string) (*http.Res // TODO: change this to the cooldown period req, err := http.NewRequest(method, s.baseURL+path, nil) if err != nil { - return nil, fmt.Errorf("failed to create request: %w", err) + return nil, fmt.Errorf("[twitchapi.doRequest] failed to create request: %w", err) } req.Header.Set("Client-ID", s.clientID) @@ -30,16 +30,16 @@ func (s *service) doRequest(method string, path string, token string) (*http.Res func (s *service) getUserInfo(query string, userIdOrName string) (*model.TwitchUserInfo, error) { resp, err := s.doRequest("GET", fmt.Sprintf("/users?%s=%s", query, userIdOrName), s.accessToken) if err != nil { - return nil, fmt.Errorf("failed to get user info: %w", err) + return nil, fmt.Errorf("[twitchapi.getUserInfo] failed to get user info: %w", err) } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { respBodyBytes, err := io.ReadAll(resp.Body) if err != nil { - return nil, fmt.Errorf("failed to read response body: %w", err) + return nil, fmt.Errorf("[twitchapi.getUserInfo] failed to read response body: %w", err) } - return nil, fmt.Errorf("twitch API request failed with status code: %d Body: %s", resp.StatusCode, string(respBodyBytes)) + return nil, fmt.Errorf("[twitchapi.getUserInfo] twitch API request failed with status code: %d Body: %s", resp.StatusCode, string(respBodyBytes)) } var data struct { @@ -47,11 +47,11 @@ func (s *service) getUserInfo(query string, userIdOrName string) (*model.TwitchU } err = json.NewDecoder(resp.Body).Decode(&data) if err != nil { - return nil, fmt.Errorf("error while parsing TwitchAPI response: %w", err) + return nil, fmt.Errorf("[twitchapi.getUserInfo] error while parsing TwitchAPI response: %w", err) } if len(data.Data) == 0 { - return nil, errors.New("no data") + return nil, errors.New("[twitchapi.getUserInfo] no data") } return &data.Data[0], nil @@ -75,14 +75,14 @@ func (s *service) GiveShoutout(streamerUsername string, broadcasterId string, me responseText = "The channel you are shouting out does not exist." return &responseText, nil } - return nil, errors.New("[GiveShoutout] s.GetUserInfo failed to get user info: " + err.Error()) + return nil, errors.New("[twitchapi.GiveShoutout] s.GetUserInfo failed to get user info: " + err.Error()) } moderatorId := s.botUserID url := fmt.Sprintf("/chat/shoutouts?from_broadcaster_id=%s&to_broadcaster_id=%s&moderator_id=%s", fromBroadcasterId, toBroadcaster.ID, moderatorId) resp, err := s.doRequest("POST", url, strings.TrimPrefix(os.Getenv("OAUTH"), "oauth:")) if err != nil { - return nil, fmt.Errorf("twitch API request failed with status code: %d", resp.StatusCode) + return nil, fmt.Errorf("[twitchapi.GiveShoutout] twitch API request failed with status code: %d", resp.StatusCode) } defer resp.Body.Close() @@ -93,11 +93,11 @@ func (s *service) GiveShoutout(streamerUsername string, broadcasterId string, me if resp.StatusCode != http.StatusNoContent { respBodyBytes, err := io.ReadAll(resp.Body) if err != nil { - return nil, fmt.Errorf("failed to read response body: %w", err) + return nil, fmt.Errorf("[twitchapi.GiveShoutout] failed to read response body: %w", err) } if err := json.Unmarshal(respBodyBytes, &errorResp); err != nil { - log.Println("[GiveShoutout] json.Unmarshal errorResp", err.Error()) + log.Println("[twitchapi.GiveShoutout] json.Unmarshal errorResp:", err.Error()) } } @@ -132,12 +132,12 @@ func (s *service) GiveShoutout(streamerUsername string, broadcasterId string, me func (s *service) CheckStreamStatus(username string) (bool, string, error) { resp, err := s.doRequest("GET", fmt.Sprintf("/streams?user_login=%s", username), s.accessToken) if err != nil { - return false, "", fmt.Errorf("failed to check stream status: %w", err) + return false, "", fmt.Errorf("[twitchapi.CheckStreamStatus] failed to check stream status: %w", err) } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { - return false, "", fmt.Errorf("twitch API request failed with status code: %d", resp.StatusCode) + return false, "", fmt.Errorf("[twitchapi.CheckStreamStatus] twitch API request failed with status code: %d", resp.StatusCode) } var data struct { @@ -150,7 +150,7 @@ func (s *service) CheckStreamStatus(username string) (bool, string, error) { err = json.NewDecoder(resp.Body).Decode(&data) if err != nil { - return false, "", fmt.Errorf("error while parsing TwitchAPI response: %w", err) + return false, "", fmt.Errorf("[twitchapi.CheckStreamStatus] error while parsing TwitchAPI response: %w", err) } if len(data.Data) == 0 { @@ -170,7 +170,7 @@ func (s *service) CheckMultipleStreamers(usernames []string) ([]model.TwitchStre resp, err := s.doRequest("GET", fmt.Sprintf("/streams?user_id=%s", params), s.accessToken) if err != nil { - return nil, fmt.Errorf("failed to check multiple streamers: %w", err) + return nil, fmt.Errorf("[twitchapi.CheckMultipleStreamers] failed to check multiple streamers: %w", err) } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { @@ -178,19 +178,19 @@ func (s *service) CheckMultipleStreamers(usernames []string) ([]model.TwitchStre hook := discordwebhook.Hook{ Username: "Senchabot Webhook", Avatar_url: "https://avatars.githubusercontent.com/u/94869947?v=4", - Content: "[CheckMultipleStreamers] Twitch API token is not authorized", + Content: "[twitchapi.CheckMultipleStreamers] Twitch API token is not authorized", } payload, err := json.Marshal(hook) if err != nil { - log.Println("[CheckMultipleStreamers] Error while webhook json Marshal:", err.Error()) + log.Println("[twitchapi.CheckMultipleStreamers] Error while webhook json Marshal:", err.Error()) } err = discordwebhook.ExecuteWebhook(os.Getenv("DISCORD_WEBHOOK_URL"), payload) if err != nil { - log.Println("[CheckMultipleStreamers] ExecuteWebhook failed:", err.Error()) + log.Println("[twitchapi.CheckMultipleStreamers] ExecuteWebhook failed:", err.Error()) } } - return nil, fmt.Errorf("twitch API request failed with status code: %d", resp.StatusCode) + return nil, fmt.Errorf("[twitchapi.CheckMultipleStreamers] twitch API request failed with status code: %d", resp.StatusCode) } var data struct { @@ -198,7 +198,7 @@ func (s *service) CheckMultipleStreamers(usernames []string) ([]model.TwitchStre } err = json.NewDecoder(resp.Body).Decode(&data) if err != nil { - return nil, fmt.Errorf("error while parsing TwitchAPI response: %w", err) + return nil, fmt.Errorf("[twitchapi.CheckMultipleStreamers] error while parsing TwitchAPI response: %w", err) } return data.Data, nil