mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-12-21 08:42:32 -05:00
Sentry error logging (#784)
This commit is contained in:
@@ -17,7 +17,8 @@ class Red(commands.Bot):
|
||||
packages=[],
|
||||
coowners=[],
|
||||
whitelist=[],
|
||||
blacklist=[]
|
||||
blacklist=[],
|
||||
enable_sentry=None
|
||||
)
|
||||
|
||||
self.db.register_guild(
|
||||
|
||||
21
core/cli.py
21
core/cli.py
@@ -1,6 +1,8 @@
|
||||
import argparse
|
||||
import asyncio
|
||||
|
||||
from core.bot import Red
|
||||
|
||||
|
||||
def confirm(m=""):
|
||||
return input(m).lower().strip() in ("y", "yes")
|
||||
@@ -39,9 +41,26 @@ def interactive_config(red, token_set, prefix_set):
|
||||
if prefix:
|
||||
loop.run_until_complete(red.db.set("prefix", [prefix]))
|
||||
|
||||
ask_sentry(red)
|
||||
|
||||
return token
|
||||
|
||||
|
||||
def ask_sentry(red: Red):
|
||||
loop = asyncio.get_event_loop()
|
||||
print("\nThank you for installing Red V3 alpha! The current version\n"
|
||||
" is not suited for production use and is aimed at testing\n"
|
||||
" the current and upcoming featureset, that's why we will\n"
|
||||
" also collect the fatal error logs to help us fix any new\n"
|
||||
" found issues in a timely manner. If you wish to opt in\n"
|
||||
" the process please type \"yes\":\n")
|
||||
if not confirm("> "):
|
||||
loop.run_until_complete(red.db.set("enable_sentry", False))
|
||||
else:
|
||||
loop.run_until_complete(red.db.set("enable_sentry", True))
|
||||
print("\nThank you for helping us with the development process!")
|
||||
|
||||
|
||||
def parse_cli_flags():
|
||||
parser = argparse.ArgumentParser(description="Red - Discord Bot")
|
||||
parser.add_argument("--owner", help="ID of the owner. Only who hosts "
|
||||
@@ -83,4 +102,4 @@ def parse_cli_flags():
|
||||
else:
|
||||
args.prefix = []
|
||||
|
||||
return args
|
||||
return args
|
||||
|
||||
42
core/sentry_setup.py
Normal file
42
core/sentry_setup.py
Normal file
@@ -0,0 +1,42 @@
|
||||
from raven import Client
|
||||
from raven.versioning import fetch_git_sha
|
||||
from raven.conf import setup_logging
|
||||
from raven.handlers.logging import SentryHandler
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
client = None
|
||||
|
||||
|
||||
def init_sentry_logging():
|
||||
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"
|
||||
)
|
||||
)
|
||||
Reference in New Issue
Block a user