%% generate tags start %%
#software-engineering
%% generate tags end %%
#software-engineering/php
## What is it?
%% run start
```ts
const {LinkPreview} = customJS
return LinkPreview.getLinkPreviewFromUrl("https://github.com/Seldaek/monolog")
```
%%
<div class="nifty-link-card-container">
<a class="nifty-link-card" href="https://github.com/Seldaek/monolog" target="_blank">
<div class="nifty-link-card-text">
<div class="nifty-link-card-title line-clamp-2">GitHub - Seldaek/monolog: Sends your logs to files, sockets, inboxes, databases and various web services</div>
<div class="nifty-link-card-description">Sends your logs to files, sockets, inboxes, databases and various web services - GitHub - Seldaek/monolog: Sends your logs to files, sockets, inboxes, databases and various web services</div>
<div class="nifty-link-href">
<img class="nifty-link-icon" src="https://github.com/fluidicon.png">
https://github.com/Seldaek/monolog
</div>
</div>
<div class="nifty-link-image-container">
<div class="nifty-link-image" style="background-image: url('https://opengraph.githubassets.com/f774612fbb153fa95632c1d7f87fd27ed3fb508a5872170bd076f4c5ae2de2dc/Seldaek/monolog')">
</div>
</div>
</a>
</div>
%% run end %%
Monolog sends your logs to files, sockets, inboxes, databases and various web services. See the complete list of handlers below. Special handlers allow you to build advanced logging strategies.
This library implements the [PSR-3](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md) interface that you can type-hint against in your own libraries to keep a maximum of interoperability. You can also use it in your applications to make sure you can always use another compatible logger at a later time. As of 1.11.0 Monolog public APIs will also accept PSR-3 log levels. Internally Monolog still uses its own level scheme since it predates PSR-3.