Flynsarmy / Slim-Monolog

Monolog logging support for Slim Framework
114 stars 17 forks source link

Slim v3 support? #14

Open JoshWillik opened 8 years ago

JoshWillik commented 8 years ago

Does this library support Slim v3?

It doesn't mention any version requirement in README.md and I'm getting an error that Slim\Log colud not be found.

I looked in Slim's source, and v2 has a \Slim\Log, while 3v does not.

Flynsarmy commented 8 years ago

Not sure. I don't use slim.

JoshWillik commented 8 years ago

But this is a slim plugin... Which I assume you wrote...

Flynsarmy commented 8 years ago

Yea, I played around with Slim ages back but only for long enough to write this package which got far more popular than I was anticipating.

I don't have a solution for the logger issue - perhaps send a PR to grab the array from config or something?

GenieTim commented 8 years ago

For Slim V 3.0, you can use monolog as is, you do not need this library.

Example implementation:

 //after initiating slim
 $container = $app->getContainer();

 $container['logger'] = function($c) {
     $logger = new \Monolog\Logger('my_logger');
     $file_handler = new \Monolog\Handler\StreamHandler("../logs/app.log");
     $logger->pushHandler($file_handler);
    return $logger;
 } ;

And usage in route:

$this->logger->addInfo("YEY! I am logging...");

kgustine commented 8 years ago

I concur with @BernhardWebstudio

Slim v2 Setup:

$logger = new \Flynsarmy\SlimMonolog\Log\MonologWriter(array(
    'name' => 'myProject',
    'handlers' => [
        new \Monolog\Handler\ChromePHPHandler(\Monolog\Logger::DEBUG),
        new \Monolog\Handler\RotatingFileHandler(__DIR__ . "/../logs/myProject.log", 3, \Monolog\Logger::DEBUG)
    ],
    'processors' => [
        new Monolog\Processor\WebProcessor(),
        new Monolog\Processor\UidProcessor()
    ]
));

$app = new \Slim\Slim([
    'mode'              => 'development',
    'templates.path'    => '../app/template',
    'cookies.encrypt'   => true,
    'log.writer'        => $logger,
    'log.level'         => \Slim\Log::DEBUG,
]);

with usage: $app->log->debug('Processing Route: /hello');

Slim v3 Setup:

$container['logger'] = function($c) {
    $logger = new \Monolog\Logger('myProject');     
    $logger->pushHandler(new \Monolog\Handler\ChromePHPHandler(\Monolog\Logger::DEBUG));   
    $logger->pushHandler(new \Monolog\Handler\RotatingFileHandler("../logs/myProject.log", 3, \Monolog\Logger::DEBUG));
    $logger->pushProcessor(new Monolog\Processor\WebProcessor());
    $logger->pushProcessor(new Monolog\Processor\UidProcessor());
    return $logger;
};

with usage: $this->logger->debug("Processing Route: /hello");