Python Logging
Implement proper logging in Python applications.
Track application behavior.
Basic Logging
```python import logging
logging.basicConfig(level=logging.INFO)
logging.debug("Debug message") logging.info("Info message") logging.warning("Warning message") logging.error("Error message") logging.critical("Critical message") ```
Log to File
```python import logging
logging.basicConfig( filename='app.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s' )
logging.info("Application started") logging.error("An error occurred") ```
Multiple Handlers
```python import logging
logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG)
Console handler console_handler = logging.StreamHandler() console_handler.setLevel(logging.INFO)
File handler file_handler = logging.FileHandler('errors.log') file_handler.setLevel(logging.ERROR)
Formatter formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) console_handler.setFormatter(formatter) file_handler.setFormatter(formatter)
logger.addHandler(console_handler) logger.addHandler(file_handler)
logger.debug("Debug info") logger.error("Error info") ```
Log Exceptions
```python import logging
logging.basicConfig(level=logging.ERROR)
try: result = 10 / 0 except Exception as e: logging.error("Error occurred", exc_info=True) ```
Custom Logger
```python import logging
def get_logger(name): logger = logging.getLogger(name) logger.setLevel(logging.INFO) handler = logging.StreamHandler() formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) handler.setFormatter(formatter) logger.addHandler(handler) return logger
logger = get_logger('my_app') logger.info("App started") ```
Remember
- Use appropriate log levels - Log to files for production - Include timestamps - Don't log sensitive data