intelligent-intern/default-log-bundle

Symfony bundle for default logging integration

Installs: 34

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

Type:intelligent-intern-bundle

1.0.0 2025-03-02 02:04 UTC

This package is auto-updated.

Last update: 2025-03-12 01:15:30 UTC


README

The intelligent-intern/default-log-bundle provides a default logging implementation for the Intelligent Intern Core Framework, ensuring basic logging functionality when no other logging strategy is installed.

Installation

Install the bundle using Composer:

composer require intelligent-intern/default-log-bundle

Configuration

Ensure the following secret is set in vault:

secret/data/data/config:
  LOG_TARGET: default

Usage

Once the bundle is installed and configured, the Core framework will dynamically detect the Default logging service via the log.strategy tag.

The service will be available via the LoggerInterface, which will be injected automatically. Here's an example with a /logtest route:

<?php

namespace App\Controller;

use Psr\Log\LoggerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Routing\Annotation\Route;

class LoggingController extends AbstractController
{
    public function __construct(
        private LoggerInterface $logger
    ) {}

    #[Route('/logtest', name: 'log_test', methods: ['GET'])]
    public function logTest(): JsonResponse
    {
        try {
            $this->logger->info('Test log message from /logtest route.');

            return new JsonResponse(['message' => 'Log written successfully']);
        } catch (\Exception $e) {
            return new JsonResponse(['error' => $e->getMessage()], 500);
        }
    }
}

Extensibility

This bundle is specifically designed to integrate with intelligent-intern/core. It leverages the dynamic service discovery mechanism to ensure seamless compatibility.

If you'd like to add additional logging strategies, simply create a similar bundle that implements the LogServiceInterface and tag its service with log.strategy.

For example:

services:
  Your\CustomBundle\Service\CustomLogService:
    tags: ['log.strategy']

License

This bundle is open-sourced software licensed under the MIT license.