mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-12-05 17:02:32 -05:00
[Core] Add Sentry logger for core cogs data gathering only (#813)
This commit is contained in:
@@ -4,8 +4,10 @@ import datetime
|
||||
import logging
|
||||
from discord.ext import commands
|
||||
from core.utils.chat_formatting import inline
|
||||
from core.sentry_setup import should_log
|
||||
|
||||
log = logging.getLogger("red")
|
||||
sentry_log = logging.getLogger("red.sentry")
|
||||
|
||||
INTRO = ("{0}===================\n"
|
||||
"{0} Red - Discord Bot \n"
|
||||
@@ -100,6 +102,12 @@ def init_events(bot, cli_flags):
|
||||
error, error.__traceback__))
|
||||
bot._last_exception = exception_log
|
||||
await ctx.send(inline(message))
|
||||
|
||||
module = ctx.command.module
|
||||
if should_log(module):
|
||||
sentry_log.exception("Exception in command '{}'"
|
||||
"".format(ctx.command.qualified_name),
|
||||
exc_info=error.original)
|
||||
elif isinstance(error, commands.CommandNotFound):
|
||||
pass
|
||||
elif isinstance(error, commands.CheckFailure):
|
||||
|
||||
@@ -5,38 +5,39 @@ from raven.handlers.logging import SentryHandler
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
__all__ = ("init_sentry_logging", "should_log")
|
||||
|
||||
|
||||
include_paths = (
|
||||
'core',
|
||||
'cogs.alias',
|
||||
'cogs.audio',
|
||||
'cogs.downloader',
|
||||
'cogs.economy',
|
||||
'cogs.general',
|
||||
'cogs.image',
|
||||
'cogs.streams',
|
||||
'cogs.trivia',
|
||||
'cogs.utils',
|
||||
'tests.core.test_sentry',
|
||||
'main',
|
||||
'launcher'
|
||||
)
|
||||
|
||||
client = None
|
||||
|
||||
|
||||
def init_sentry_logging():
|
||||
def init_sentry_logging(logger):
|
||||
global client
|
||||
client = Client(
|
||||
dsn=("https://27f3915ba0144725a53ea5a99c9ae6f3:87913fb5d0894251821dcf06e5e9cfe6@"
|
||||
"sentry.telemetry.red/19?verify_ssl=0"),
|
||||
include_paths=(
|
||||
'core',
|
||||
'cogs.alias',
|
||||
'cogs.audio',
|
||||
'cogs.downloader',
|
||||
'cogs.economy',
|
||||
'cogs.general',
|
||||
'cogs.image',
|
||||
'cogs.streams',
|
||||
'cogs.trivia',
|
||||
'cogs.utils',
|
||||
'tests.core.test_sentry',
|
||||
'main',
|
||||
'launcher'
|
||||
),
|
||||
release=fetch_git_sha(str(Path.cwd()))
|
||||
)
|
||||
|
||||
handler = SentryHandler(client)
|
||||
setup_logging(
|
||||
handler,
|
||||
exclude=(
|
||||
"asyncio",
|
||||
"discord"
|
||||
)
|
||||
)
|
||||
logger.addHandler(handler)
|
||||
|
||||
|
||||
def should_log(module_name: str) -> bool:
|
||||
return any(module_name.startswith(path) for path in include_paths)
|
||||
|
||||
Reference in New Issue
Block a user