Skip to content

Commit 1ca6d57

Browse files
Merge pull request #1831 from python-discord/custom-logger-class
Add `CustomLogger` to prevent IDE lint warnings when calling `log.trace`.
2 parents cbbaf2f + c9bfe51 commit 1ca6d57

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+228
-224
lines changed

bot/__main__.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
import logging
2-
31
import aiohttp
42

53
import bot
64
from bot import constants
75
from bot.bot import Bot, StartupError
8-
from bot.log import setup_sentry
6+
from bot.log import get_logger, setup_sentry
97

108
setup_sentry()
119

@@ -21,7 +19,7 @@
2119
message = "Could not connect to Redis. Is it running?"
2220

2321
# The exception is logged with an empty message so the actual message is visible at the bottom
24-
log = logging.getLogger("bot")
22+
log = get_logger("bot")
2523
log.fatal("", exc_info=e.exception)
2624
log.fatal(message)
2725

bot/api.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import asyncio
2-
import logging
32
from typing import Optional
43
from urllib.parse import quote as quote_url
54

65
import aiohttp
76

7+
from bot.log import get_logger
88
from .constants import Keys, URLs
99

10-
log = logging.getLogger(__name__)
10+
log = get_logger(__name__)
1111

1212

1313
class ResponseCodeError(ValueError):

bot/bot.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import asyncio
2-
import logging
32
import socket
43
import warnings
54
from collections import defaultdict
@@ -14,8 +13,9 @@
1413

1514
from bot import api, constants
1615
from bot.async_stats import AsyncStatsClient
16+
from bot.log import get_logger
1717

18-
log = logging.getLogger('bot')
18+
log = get_logger('bot')
1919
LOCALHOST = "127.0.0.1"
2020

2121

bot/constants.py

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
out in the custom user configuration will stay
1010
their default values from `config-default.yml`.
1111
"""
12-
13-
import logging
1412
import os
1513
from collections.abc import Mapping
1614
from enum import Enum
@@ -25,8 +23,6 @@
2523
except ModuleNotFoundError:
2624
pass
2725

28-
log = logging.getLogger(__name__)
29-
3026

3127
def _env_var_constructor(loader, node):
3228
"""
@@ -104,7 +100,7 @@ def _recursive_update(original, new):
104100

105101

106102
if Path("config.yml").exists():
107-
log.info("Found `config.yml` file, loading constants from it.")
103+
print("Found `config.yml` file, loading constants from it.")
108104
with open("config.yml", encoding="UTF-8") as f:
109105
user_config = yaml.safe_load(f)
110106
_recursive_update(_CONFIG_YAML, user_config)
@@ -123,11 +119,10 @@ def check_required_keys(keys):
123119
if lookup is None:
124120
raise KeyError(key)
125121
except KeyError:
126-
log.critical(
122+
raise KeyError(
127123
f"A configuration for `{key_path}` is required, but was not found. "
128124
"Please set it in `config.yml` or setup an environment variable and try again."
129125
)
130-
raise
131126

132127

133128
try:
@@ -186,8 +181,7 @@ def __getattr__(cls, name):
186181
(cls.section, cls.subsection, name)
187182
if cls.subsection is not None else (cls.section, name)
188183
)
189-
# Only an INFO log since this can be caught through `hasattr` or `getattr`.
190-
log.info(f"Tried accessing configuration variable at `{dotted_path}`, but it could not be found.")
184+
print(f"Tried accessing configuration variable at `{dotted_path}`, but it could not be found.")
191185
raise AttributeError(repr(name)) from e
192186

193187
def __getitem__(cls, name):

bot/converters.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from __future__ import annotations
22

3-
import logging
43
import re
54
import typing as t
65
from datetime import datetime
@@ -19,13 +18,15 @@
1918
from bot.constants import URLs
2019
from bot.errors import InvalidInfraction
2120
from bot.exts.info.doc import _inventory_parser
21+
from bot.log import get_logger
2222
from bot.utils.extensions import EXTENSIONS, unqualify
2323
from bot.utils.regex import INVITE_RE
2424
from bot.utils.time import parse_duration_string
25+
2526
if t.TYPE_CHECKING:
2627
from bot.exts.info.source import SourceType
2728

28-
log = logging.getLogger(__name__)
29+
log = get_logger(__name__)
2930

3031
DISCORD_EPOCH_DT = datetime.utcfromtimestamp(DISCORD_EPOCH / 1000)
3132
RE_USER_MENTION = re.compile(r"<@!?([0-9]+)>$")

bot/decorators.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import asyncio
22
import functools
3-
import logging
43
import types
54
import typing as t
65
from contextlib import suppress
@@ -10,11 +9,12 @@
109
from discord.ext.commands import Cog, Context
1110

1211
from bot.constants import Channels, DEBUG_MODE, RedirectOutput
12+
from bot.log import get_logger
1313
from bot.utils import function, scheduling
1414
from bot.utils.checks import ContextCheckFailure, in_whitelist_check
1515
from bot.utils.function import command_wraps
1616

17-
log = logging.getLogger(__name__)
17+
log = get_logger(__name__)
1818

1919

2020
def in_whitelist(

bot/exts/backend/branding/_cog.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import asyncio
22
import contextlib
3-
import logging
43
import random
54
import typing as t
65
from datetime import timedelta
@@ -17,9 +16,10 @@
1716
from bot.constants import Branding as BrandingConfig, Channels, Colours, Guild, MODERATION_ROLES
1817
from bot.decorators import mock_in_debug
1918
from bot.exts.backend.branding._repository import BrandingRepository, Event, RemoteObject
19+
from bot.log import get_logger
2020
from bot.utils import scheduling
2121

22-
log = logging.getLogger(__name__)
22+
log = get_logger(__name__)
2323

2424

2525
class AssetType(Enum):

bot/exts/backend/branding/_repository.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import logging
21
import typing as t
32
from datetime import date, datetime
43

@@ -7,6 +6,7 @@
76
from bot.bot import Bot
87
from bot.constants import Keys
98
from bot.errors import BrandingMisconfiguration
9+
from bot.log import get_logger
1010

1111
# Base URL for requests into the branding repository.
1212
BRANDING_URL = "https://api.github.com/repos/python-discord/branding/contents"
@@ -25,7 +25,7 @@
2525
# Format used to parse date strings after we inject `ARBITRARY_YEAR` at the end.
2626
DATE_FMT = "%B %d %Y" # Ex: July 10 2020
2727

28-
log = logging.getLogger(__name__)
28+
log = get_logger(__name__)
2929

3030

3131
class RemoteObject:

bot/exts/backend/config_verifier.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
import logging
2-
31
from discord.ext.commands import Cog
42

53
from bot import constants
64
from bot.bot import Bot
5+
from bot.log import get_logger
76
from bot.utils import scheduling
87

9-
log = logging.getLogger(__name__)
8+
log = get_logger(__name__)
109

1110

1211
class ConfigVerifier(Cog):

bot/exts/backend/error_handler.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import difflib
2-
import logging
32
import typing as t
43

54
from discord import Embed
@@ -11,9 +10,10 @@
1110
from bot.constants import Colours, Icons, MODERATION_ROLES
1211
from bot.converters import TagNameConverter
1312
from bot.errors import InvalidInfractedUserError, LockedResourceError
13+
from bot.log import get_logger
1414
from bot.utils.checks import ContextCheckFailure
1515

16-
log = logging.getLogger(__name__)
16+
log = get_logger(__name__)
1717

1818

1919
class ErrorHandler(Cog):

bot/exts/backend/logging.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1-
import logging
2-
31
from discord import Embed
42
from discord.ext.commands import Cog
53

64
from bot.bot import Bot
75
from bot.constants import Channels, DEBUG_MODE
6+
from bot.log import get_logger
87
from bot.utils import scheduling
98

10-
log = logging.getLogger(__name__)
9+
log = get_logger(__name__)
1110

1211

1312
class Logging(Cog):

bot/exts/backend/sync/_cog.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import logging
21
from typing import Any, Dict
32

43
from discord import Member, Role, User
@@ -9,9 +8,10 @@
98
from bot.api import ResponseCodeError
109
from bot.bot import Bot
1110
from bot.exts.backend.sync import _syncers
11+
from bot.log import get_logger
1212
from bot.utils import scheduling
1313

14-
log = logging.getLogger(__name__)
14+
log = get_logger(__name__)
1515

1616

1717
class Sync(Cog):

bot/exts/backend/sync/_syncers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import abc
2-
import logging
32
import typing as t
43
from collections import namedtuple
54

@@ -9,9 +8,10 @@
98

109
import bot
1110
from bot.api import ResponseCodeError
11+
from bot.log import get_logger
1212
from bot.utils.members import get_or_fetch_member
1313

14-
log = logging.getLogger(__name__)
14+
log = get_logger(__name__)
1515

1616
CHUNK_SIZE = 1000
1717

bot/exts/events/code_jams/_channels.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import logging
21
import typing as t
32

43
import discord
54

65
from bot.constants import Categories, Channels, Roles
6+
from bot.log import get_logger
77

8-
log = logging.getLogger(__name__)
8+
log = get_logger(__name__)
99

1010
MAX_CHANNELS = 50
1111
CATEGORY_NAME = "Code Jam"

bot/exts/events/code_jams/_cog.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import asyncio
22
import csv
3-
import logging
43
import typing as t
54
from collections import defaultdict
65

@@ -11,10 +10,11 @@
1110
from bot.bot import Bot
1211
from bot.constants import Emojis, Roles
1312
from bot.exts.events.code_jams import _channels
13+
from bot.log import get_logger
1414
from bot.utils.members import get_or_fetch_member
1515
from bot.utils.services import send_to_paste_service
1616

17-
log = logging.getLogger(__name__)
17+
log = get_logger(__name__)
1818

1919
TEAM_LEADERS_COLOUR = 0x11806a
2020
DELETION_REACTION = "\U0001f4a5"

bot/exts/filters/antimalware.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import logging
21
import typing as t
32
from os.path import splitext
43

@@ -8,8 +7,9 @@
87
from bot.bot import Bot
98
from bot.constants import Channels, Filter, URLs
109
from bot.exts.events.code_jams._channels import CATEGORY_NAME as JAM_CATEGORY_NAME
10+
from bot.log import get_logger
1111

12-
log = logging.getLogger(__name__)
12+
log = get_logger(__name__)
1313

1414
PY_EMBED_DESCRIPTION = (
1515
"It looks like you tried to attach a Python file - "

bot/exts/filters/antispam.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import asyncio
2-
import logging
32
from collections import defaultdict
43
from collections.abc import Mapping
54
from dataclasses import dataclass, field
@@ -21,12 +20,12 @@
2120
from bot.converters import Duration
2221
from bot.exts.events.code_jams._channels import CATEGORY_NAME as JAM_CATEGORY_NAME
2322
from bot.exts.moderation.modlog import ModLog
23+
from bot.log import get_logger
2424
from bot.utils import lock, scheduling
2525
from bot.utils.message_cache import MessageCache
2626
from bot.utils.messages import format_user, send_attachments
2727

28-
29-
log = logging.getLogger(__name__)
28+
log = get_logger(__name__)
3029

3130
RULE_FUNCTION_MAPPING = {
3231
'attachments': rules.apply_attachments,

bot/exts/filters/filter_lists.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import logging
21
from typing import Optional
32

43
from discord import Colour, Embed
@@ -8,10 +7,11 @@
87
from bot.api import ResponseCodeError
98
from bot.bot import Bot
109
from bot.converters import ValidDiscordServerInvite, ValidFilterListType
10+
from bot.log import get_logger
1111
from bot.pagination import LinePaginator
1212
from bot.utils import scheduling
1313

14-
log = logging.getLogger(__name__)
14+
log = get_logger(__name__)
1515

1616

1717
class FilterLists(Cog):

bot/exts/filters/filtering.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import asyncio
2-
import logging
32
import re
43
from datetime import datetime, timedelta
54
from typing import Any, Dict, List, Mapping, NamedTuple, Optional, Tuple, Union
@@ -21,11 +20,12 @@
2120
)
2221
from bot.exts.events.code_jams._channels import CATEGORY_NAME as JAM_CATEGORY_NAME
2322
from bot.exts.moderation.modlog import ModLog
23+
from bot.log import get_logger
2424
from bot.utils import scheduling
2525
from bot.utils.messages import format_user
2626
from bot.utils.regex import INVITE_RE
2727

28-
log = logging.getLogger(__name__)
28+
log = get_logger(__name__)
2929

3030
# Regular expressions
3131
CODE_BLOCK_RE = re.compile(

bot/exts/filters/security.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
import logging
2-
31
from discord.ext.commands import Cog, Context, NoPrivateMessage
42

53
from bot.bot import Bot
4+
from bot.log import get_logger
65

7-
log = logging.getLogger(__name__)
6+
log = get_logger(__name__)
87

98

109
class Security(Cog):

0 commit comments

Comments
 (0)