Introduction to Magnus Logger
Magnus Logger is a powerful and flexible logging library designed to handle all your logging needs with ease. Whether you are developing a small application or a large-scale system, Magnus Logger provides a comprehensive set of features that make logging simple and efficient.
API Examples
Basic Configuration
Setting up a basic logger is straightforward.
import magnus_logger logger = magnus_logger.get_logger("app_logger") logger.info("This is an info message") logger.error("This is an error message")
Advanced Configuration
Configure Magnus Logger with different log levels and formats.
import magnus_logger config = { "handlers": { "console": { "level": "DEBUG", "formatter": "detailed" }, "file": { "level": "ERROR", "formatter": "simple", "filename": "app.log" } }, "formatters": { "detailed": { "format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s" }, "simple": { "format": "%(levelname)s - %(message)s" } } } magnus_logger.configure(config) logger = magnus_logger.get_logger("app_logger") logger.debug("This is a debug message") logger.error("This is an error message")
Logging Exceptions
Handling exceptions with Magnus Logger is seamless.
try: 1 / 0 except ZeroDivisionError as e: logger.exception("An exception occurred")
Contextual Logging
Adding context to your logs can be very useful for debugging.
with logger.contextualize(user="John Doe"): logger.info("User login attempt")
Log Rotation
Configure log rotation to manage log files efficiently.
from magnus_logger.handlers import TimedRotatingFileHandler handler = TimedRotatingFileHandler("app.log", when="midnight", interval=1, backup_count=7) logger.addHandler(handler)
Using Handlers
Adding multiple handlers to a logger for different outputs.
console_handler = magnus_logger.StreamHandler() file_handler = magnus_logger.FileHandler("app.log") logger.addHandler(console_handler) logger.addHandler(file_handler)
App Example
Here is a complete example integrating various features of Magnus Logger in an app.
import magnus_logger from magnus_logger.handlers import TimedRotatingFileHandler # Configuration config = { "handlers": { "console": { "level": "DEBUG", "formatter": "detailed" }, "file": { "level": "ERROR", "formatter": "simple", "filename": "app.log" } }, "formatters": { "detailed": { "format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s" }, "simple": { "format": "%(levelname)s - %(message)s" } } } magnus_logger.configure(config) # Initialize logger logger = magnus_logger.get_logger("app_logger") # Timed Rotating Log Handler handler = TimedRotatingFileHandler("app.log", when="midnight", interval=1, backup_count=7) logger.addHandler(handler) def run_app(): logger.info("App started") try: result = 10 / 0 except ZeroDivisionError: logger.exception("An error occurred") with logger.contextualize(user="John Doe"): logger.info("End of process for the user") if __name__ == "__main__": run_app()
These examples demonstrate how powerful and versatile Magnus Logger is for different logging purposes.
Hash: 0c8437d5bb3d6db30138db8af808eb4350c923dc2e0c64595869a0010f11e976