# How to setup a monolog logger

**URL:** <https://discourse.slimframework.com/t/how-to-setup-a-monolog-logger/4286>\
**Category:** Questions\
**Created:** [July 12, 2020, 12:19am UTC](https://discourse.slimframework.com/t/how-to-setup-a-monolog-logger/4286 "2020-07-12T00:19:48Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![kingrenz23](https://avatars.discourse-cdn.com/v4/letter/k/c2a13f/32.png) [@kingrenz23](https://discourse.slimframework.com/u/kingrenz23)\
**Post date:** [July 12, 2020, 12:19am UTC](https://discourse.slimframework.com/t/how-to-setup-a-monolog-logger/4286/1 "2020-07-12T00:19:48Z")

</div>

Hello I’m a newbie. The [documentation](http://www.slimframework.com/docs/v4/middleware/error-handling.html) on setting up a custom error handler doesn’t make clear how to setup the logger. Can you please me how to setup the logger variable here?

```
	<?php
	use Psr\Http\Message\ServerRequestInterface;
	use Psr\Log\LoggerInterface;
	use Slim\Factory\AppFactory;
	use Slim\Psr7\Response;

	require __DIR__. '/../vendor/autoload.php';

	$app = AppFactory::create();

	// Add Routing Middleware
	$app->addRoutingMiddleware();

	// Define Custom Error Handler
	$customErrorHandler = function (
		ServerRequestInterface $request,
		Throwable $exception,
		bool $displayErrorDetails,
		bool $logErrors,
		bool $logErrorDetails,
		?LoggerInterface $logger = null
	) use ($app) {
		$logger->error($exception->getMessage());

		$payload = ['error' => $exception->getMessage()];

		$response = $app->getResponseFactory()->createResponse();
		$response->getBody()->write(
			json_encode($payload, JSON_UNESCAPED_UNICODE)
		);

		return $response;
	};

	// Add Error Middleware
	$errorMiddleware = $app->addErrorMiddleware(true, true, true, $logger);
	$errorMiddleware->setDefaultErrorHandler($customErrorHandler);

	// ...

	$app->run();
```

---

<div class="post-metadata">

**Author:** ![odan](https://avatars.discourse-cdn.com/v4/letter/o/9de053/32.png) [@odan](https://discourse.slimframework.com/u/odan)\
**Post date:** [July 12, 2020, 10:13am UTC](https://discourse.slimframework.com/t/how-to-setup-a-monolog-logger/4286/2 "2020-07-12T10:13:12Z")

</div>

For monolog and other dependencies, I would recommend [installing an DI container](https://odan.github.io/2019/11/05/slim4-tutorial.html#di-container) first. Then you can create a container definition (factory) for monolog. In this blog post, you can find some information how to integrate monolog into a Slim 4 project: [Slim 4 - Logging](https://odan.github.io/2020/05/25/slim4-logging.html)

---

<div class="post-metadata">

**Author:** ![tj\_gumis](https://avatars.discourse-cdn.com/v4/letter/t/c89c15/32.png) [@tj\_gumis](https://discourse.slimframework.com/u/tj_gumis)\
**Post date:** [July 12, 2020, 11:27pm UTC](https://discourse.slimframework.com/t/how-to-setup-a-monolog-logger/4286/3 "2020-07-12T23:27:57Z")

</div>

Your blog. Great job.

---

<div class="post-metadata">

**Author:** ![kingrenz23](https://avatars.discourse-cdn.com/v4/letter/k/c2a13f/32.png) [@kingrenz23](https://discourse.slimframework.com/u/kingrenz23)\
**Post date:** [July 31, 2020, 11:43am UTC](https://discourse.slimframework.com/t/how-to-setup-a-monolog-logger/4286/4 "2020-07-31T11:43:41Z")

</div>

Dude your blog is amazing a lot of stuff to learn there
