I use IIS 7 with Integrated mode.
<configSections>
<sectionGroup name="common">
<section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
</sectionGroup>
<section name="jsnlog" type="JSNLog.ConfigurationSectionHandler, JSNLog" requirePermission="false" />
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
</modules>
<handlers>
<add name="LoggerHandler" verb="*" preCondition="integratedMode" path="*.logger" type="JSNLog.LoggerHandler, JSNLog" resourceType="Unspecified" />
</handlers>
<jsnlog productionLibraryPath="~/Scripts/jsnlog/jsnlog.js" stubPath="~/Scripts/jsnlog/jsnlog_stub.js"
serverSideLogger="jslogger" serverSideLevel="ERROR" serverSideMessageFormat="%utcdate %logger %level %url %sessionid %newline %userAgent %userHostAddress %newline %message">
<appender name="appender1">
<batchSize value="2" />
</appender>
<appender name="appender2">
<timerInterval value="3000" />
</appender>
<!--Change root logger level to TRACE. All other loggers will inherit this.
This way, TRACE messages too will be logged (by default, only messages with severity DEBUG and higher
will be logged).-->
<root>
<level value="ERROR"></level>
</root>
<!--Associate all jsnlog_batchtest.* loggers with appender1.
This appender does size based batching - it holds onto log messages until it has 2,
then sends the 2 in a single request to the server.-->
<logger name="jsnlog_batchtest" additivity="false">
<appender-ref ref="appender1" />
</logger>
<!--Give all jsnlog_speciallogger.* loggers the level INFO-->
<logger name="jsnlog_speciallogger">
<level value="ERROR"></level>
</logger>
</jsnlog>
<common>
<logging>
<factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net">
<arg key="configType" value="INLINE" />
</factoryAdapter>
</logging>
</common>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Common.Logging" publicKeyToken="af08829b84f0328e" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.1.1.0" newVersion="2.1.1.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>