File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -217,3 +217,6 @@ __marimo__/
217217
218218# MacOS
219219.DS_Store
220+
221+ # CAPY
222+ logs /
Original file line number Diff line number Diff line change 33import capy_discord
44from capy_discord .bot import Bot
55from capy_discord .config import settings
6+ from capy_discord .logging import setup_logging
67
78
89def main () -> None :
910 """Main function to run the application."""
11+ setup_logging ()
1012 capy_discord .instance = Bot (command_prefix = settings .prefix , intents = discord .Intents .all ())
1113 capy_discord .instance .run (settings .token )
1214
Original file line number Diff line number Diff line change @@ -15,6 +15,7 @@ class EnvConfig(BaseSettings):
1515class Settings (EnvConfig ):
1616 """Manages application settings using Pydantic."""
1717
18+ log_level : str = "INFO"
1819 prefix : str = "/"
1920 token : str = ""
2021
Original file line number Diff line number Diff line change 1+ import datetime
2+ import logging
3+ import logging .handlers
4+ from pathlib import Path
5+
6+ from capy_discord .config import settings
7+
8+
9+ def setup_logging () -> None :
10+ """Set up logging for the application."""
11+ log_format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
12+ log_level = logging .getLevelNamesMapping ()[settings .log_level .upper ()]
13+ log_file = f"{ datetime .datetime .now (datetime .UTC ).date ()} .log"
14+
15+ # Create logs directory if it doesn't exist
16+ log_dir = Path ("logs" )
17+ log_dir .mkdir (exist_ok = True )
18+
19+ # Root logger
20+ logger = logging .getLogger ()
21+ logger .setLevel (log_level )
22+
23+ # File handler
24+ file_handler = logging .handlers .RotatingFileHandler (
25+ log_dir / log_file ,
26+ maxBytes = 1024 * 1024 * 5 , # 5 MB
27+ backupCount = 5 ,
28+ encoding = "utf-8" ,
29+ )
30+ file_handler .setFormatter (logging .Formatter (log_format ))
31+ logger .addHandler (file_handler )
32+
33+ # Console handler
34+ console_handler = logging .StreamHandler ()
35+ console_handler .setFormatter (logging .Formatter (log_format ))
36+ logger .addHandler (console_handler )
You can’t perform that action at this time.
0 commit comments