Added logger.
This commit is contained in:
47
rstat_tool/logger_setup.py
Normal file
47
rstat_tool/logger_setup.py
Normal file
@@ -0,0 +1,47 @@
|
||||
# rstat_tool/logger_setup.py
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
# Get the root logger
|
||||
logger = logging.getLogger("rstat_app")
|
||||
logger.setLevel(logging.INFO) # Set the minimum level of messages to handle
|
||||
|
||||
# Prevent the logger from propagating messages to the parent (root) logger
|
||||
logger.propagate = False
|
||||
|
||||
# Only add handlers if they haven't been added before
|
||||
# This prevents duplicate log messages if this function is called multiple times.
|
||||
if not logger.handlers:
|
||||
# --- Console Handler ---
|
||||
# This handler prints logs to the standard output (your terminal)
|
||||
console_handler = logging.StreamHandler(sys.stdout)
|
||||
console_handler.setLevel(logging.INFO)
|
||||
# A simple formatter for the console
|
||||
console_formatter = logging.Formatter('%(message)s')
|
||||
console_handler.setFormatter(console_formatter)
|
||||
logger.addHandler(console_handler)
|
||||
|
||||
# --- File Handler ---
|
||||
# This handler writes logs to a file
|
||||
# 'a' stands for append mode
|
||||
file_handler = logging.FileHandler("rstat.log", mode='a')
|
||||
file_handler.setLevel(logging.INFO)
|
||||
# A more detailed formatter for the file, including timestamp and log level
|
||||
file_formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
|
||||
file_handler.setFormatter(file_formatter)
|
||||
logger.addHandler(file_handler)
|
||||
|
||||
# Get the logger used by the yfinance library
|
||||
yfinance_logger = logging.getLogger("yfinance")
|
||||
# Set its level to capture warnings and errors
|
||||
yfinance_logger.setLevel(logging.WARNING)
|
||||
# Add our existing handlers to it. This tells yfinance's logger
|
||||
# to send its messages to our console and our log file.
|
||||
if not yfinance_logger.handlers:
|
||||
yfinance_logger.addHandler(console_handler)
|
||||
yfinance_logger.addHandler(file_handler)
|
||||
|
||||
def get_logger():
|
||||
"""A simple function to get our configured logger."""
|
||||
return logger
|
Reference in New Issue
Block a user