In previous post I've described why I've started to look into RabbitMQ integration. Here you could find its implementation.
Implementation: Sitecore + RabbitMQ
To send log data from Sitecore we need to extend its Logger. Sitecore uses a logging system based on log4net (it is their implementation and based not on the latest log4net sources) so we could try to use existing open-source module from NuGet at least as a reference.
I took the module, replace the log4net reference with Sitecore.Logging.dll, and made all needed changes. All this code you could find on GitHub in pre-beta version.
GitHub: Sitecore.Logger.RabbitMQ.GelfAppender
How to configure
- Put compiled DLLs to the bin folder.
- Make changes in web.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, Sitecore.Logging" />
</configSections>
<log4net>
<appender name="rabbitmq" type="log4net.Appender.GelfRabbitMqAppender, Sitecore.Logger.RabbitMQ.GelfAppender">
<HostName value="localhost" />
<VirtualHost value="/" />
<Port value="5672" />
<Exchange value="log4net.gelf.appender" />
<Username value="guest" />
<Password value="guest" />
<Facility value="SampleClient" />
</appender>
<root>
<level value="ERROR" />
<appender-ref ref="rabbitmq" />
</root>
</log4net>
</configuration>
- Run RabbitMQ service
- Check that messages are sent (you need to use any kind of client AMQP)
Now we can use it.
