In Python’s built-in logging
module, a StreamHandler
is a logging handler that sends log messages to an output stream, such as:
The console (sys.stdout
or sys.stderr
)
Any other stream-like object (e.g., a file-like object)
StreamHandler
?By default, Python logs go to the console using a stream handler. But when you want more control (e.g., log to both file and console, or change format), you can explicitly use StreamHandler
.
import logging
# Create logger
logger = logging.getLogger("my_logger")
logger.setLevel(logging.DEBUG)
# Create console handler
stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.INFO)
# Create and set format
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
stream_handler.setFormatter(formatter)
# Add handler to logger
logger.addHandler(stream_handler)
# Log something
logger.info("This goes to the console via StreamHandler")
Component | Description |
---|---|
StreamHandler() |
Sends logs to console or custom stream |
setLevel() |
Controls minimum severity level |
setFormatter() |
Formats the output |
addHandler() |
Adds handler to a logger |
FileHandler
→ sends logs to a file
SMTPHandler
→ sends logs via email
RotatingFileHandler
→ rotates logs after a size limit