Essential Guide to Magnus Logger for Robust Data Logging

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

Leave a Reply

Your email address will not be published. Required fields are marked *