Once you download the binaries it's quite simple and straight forward to configure your web applications to use it.
You just need to append or configure the system.web/healthMonitoring
section within your web.config file with the following configuration snippet:
<healthMonitoring enabled="true">
<providers>
<add name="trace" type="System.Web.Management.TraceWebEventProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add source="EventLogSourceName" name="eventlog" type="NG.Web.Management.EventLogWebEventProvider, NG.Web.Management" />
</providers>
<rules>
<clear />
<add name="Application Lifetime Events Default" eventName="Application Lifetime Events"
provider="eventlog" profile="Default" minInstances="1" maxLimit="Infinite"
minInterval="00:00:00" />
<add name="Request Processing Events Default" eventName="Request Processing Events"
provider="eventlog" profile="Default" minInstances="1" maxLimit="Infinite"
minInterval="00:00:00" />
<add name="All Errors Trace" eventName="All Errors" provider="eventlog"
profile="Default" minInstances="1" maxLimit="Infinite" minInterval="00:00:00" />
<add name="Infrastructure Errors Default" eventName="Infrastructure Errors"
provider="eventlog" profile="Default" minInstances="1" maxLimit="Infinite"
minInterval="00:00:00" />
<add name="Request Processing Errors Default" eventName="Request Processing Errors"
provider="eventlog" profile="Default" minInstances="1" maxLimit="Infinite"
minInterval="00:00:00" />
<add name="Failure Audits Default" eventName="Failure Audits"
provider="eventlog" profile="Default" minInstances="1" maxLimit="Infinite"
minInterval="00:00:00" />
<add name="Failure Viewstate Events Default" eventName="Failure Viewstate Events"
provider="eventlog" profile="Default" minInstances="1" maxLimit="Infinite"
minInterval="00:00:00" />
</rules>
<eventMappings>
<add name="Failure Viewstate Events" type="System.Web.Management.WebViewStateFailureAuditEvent, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
startEventCode="0" endEventCode="2147483647" />
<add name="All Management Events" type="System.Web.Management.WebManagementEvent, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
startEventCode="0" endEventCode="2147483647" />
</eventMappings>
</healthMonitoring>
Before start using your application you must ensure the EventLog SourceName you intend to use exists. If not, you can easily create it using this simple PowerShell script:
$creationData = new-object System.Diagnostics.EventSourceCreationData("EventLogSourceName", "Application")
$creationData.CategoryCount = 5
$creationData.CategoryResourceFile = "c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_rc.dll"
$creationData.MessageResourceFile = "c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_rc.dll"
if (![System.Diagnostics.EventLog]::SourceExists($creationData.Source))
{
[System.Diagnostics.EventLog]::CreateEventSource($creationData)
}
if ([System.Diagnostics.EventLog]::Exists($creationData.LogName))
{
$eventlogs = [System.Diagnostics.EventLog]::GetEventLogs()
foreach ($evtlog in $eventlogs)
{
if ($evtlog.Log -eq $creationData.LogName)
{
$evtlog.ModifyOverflowPolicy([System.Diagnostics.OverflowAction]::OverwriteAsNeeded, $evtlog.MinimumRetentionDays);
$evtlog.MaximumKilobytes = 20096;
}
}
}
and change it accordingly.