Home > Backend Development > PHP Tutorial > PHP Logger with Email Notifications | Error Tracking in PHP

PHP Logger with Email Notifications | Error Tracking in PHP

Susan Sarandon
Release: 2024-12-10 19:34:11
Original
1039 people have browsed it

PHP Logger with Email Notifications | Error Tracking in PHP

Topics: PHP, Logging, Email Notifications, Error Handling, Web Development, PHP File Logging, Critical Error Handling, PHP Tutorials, PHP Best Practices, Software Development


Table of Contents

  1. Introduction
  2. Requirements Analysis
  3. File Structure
  4. Implementation
    • Configuration (config.php)
    • Logger Class (Logger.php)
    • Example Usage (index.php)
  5. Explanation
  6. Enhancements (Optional)
  7. Conclusion

1. Intruduction

This PHP logger writes logs to a file and sends email notifications for critical issues. It includes a flexible configuration, supports custom severity levels, and demonstrates best practices for file handling and error notifications in PHP.


2. Requirements Analysis

  • Purpose: Create a logging system that writes logs to a file and sends email notifications for critical errors.
  • Features:
    1. Log messages to a file with timestamps and severity levels.
    2. Notify via email for "ERROR" or "CRITICAL" logs.
    3. Configurable log file path and email settings.
  • Input: Log messages with severity (INFO, WARNING, ERROR, CRITICAL).
  • Output:
    • Log entries stored in a file.
    • Emails sent for critical issues.
  • Constraints:
    • Use only PHP-compatible syntax.
    • Handle errors gracefully to avoid application crashes.

3. File Structure

project/
│
├── logger/
│   ├── Logger.php         # Core Logger class
│   ├── config.php         # Configuration for email and file paths
│
├── logs/
│   └── app.log            # Example log file (generated dynamically)
│
└── index.php              # Example usage of the Logger
Copy after login
Copy after login

5. Explanation

  1. Configuration (config.php):

    • Stores file path and email settings.
    • Ensures flexibility for changing email or log paths.
  2. Logger Class (Logger.php):

    • Handles logging of messages with timestamps and severity levels.
    • Sends emails for errors and critical logs using PHP's mail() function.
    • Creates log directories if they don’t exist.
  3. Example Usage (index.php):

    • Demonstrates how to use the Logger class to log messages of various severities.
  4. Logger Class:

    • Contains methods for logging messages to a file and sending email notifications.
    • Log levels (INFO, WARNING, ERROR, etc.) categorize the messages for better debugging.
  5. log() Method:

    • Appends log entries to the specified file.
    • Sends an email notification for ERROR or FATAL levels when enabled.
  6. sendEmail() Method:

    • Uses PHP’s mail() function to send email notifications.
    • Can be replaced with PHPMailer for more robust email handling.

6. Enhancements (Optional)

  1. Add SMTP Support:
    Use the PHPMailer library for more robust email notifications.

  2. Database Logging:
    Store logs in a database for better querying and analysis.

  3. Customizable Severity Levels:
    Allow users to specify which log levels trigger email notifications.

    project/
    │
    ├── logger/
    │   ├── Logger.php         # Core Logger class
    │   ├── config.php         # Configuration for email and file paths
    │
    ├── logs/
    │   └── app.log            # Example log file (generated dynamically)
    │
    └── index.php              # Example usage of the Logger
    
    Copy after login
    Copy after login

    Modify the email logic to check against levels.

  4. Email Notification
    For critical errors, ensure that the admin receives an email with the error message. The email should contain the following information:

    Subject:

    'email_notifications' => [
        'enabled' => true,
        'levels' => ['ERROR', 'FATAL'], // Add this key
        ...
    ]
    
    Copy after login

    Body:

    Critical Error Notification
    
    Copy after login
  5. JSON Logs:
    Format logs as JSON for structured logging.


7. Conclusion

Creating a custom logger with email notifications enhances error tracking and system monitoring. The solution is simple yet extensible, allowing for future enhancements like SMTP integration or log rotation. This demonstrates how PHP can handle both file-based logging and email notifications effectively.

If you'd like to explore best practices more, Click Here.

Stay Connected!

  • Connect with me on LinkedIn to discuss ideas or projects.
  • Check out my Portfolio for exciting projects.
  • Give my GitHub repositories a star ⭐ on GitHub if you find them useful!

Your support and feedback mean a lot! ?

The above is the detailed content of PHP Logger with Email Notifications | Error Tracking in PHP. For more information, please follow other related articles on the PHP Chinese website!

source:dev.to
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template