HomeDev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunitySubmit a ticketLog In
GitHubNuGetDev CommunitySubmit a ticket

Log into .Net Diagnostics Trace

Describes how to log into .Net Diagnistics Trace.

There are two built-in logger factories for writing log messages from the Optimizely Log API to .NET Diagnostics Trace; the EPiServer.Logging.TraceLoggerFactory and the EPiServer.Logging.TraceSourceLoggerFactory.

📘

Note

In Optimizely Digital Experience Platform (DXP), Optimizely logs are redirected into .NET Diagnostic Trace, as long as the code uses the Optimizely logging abstraction EPiServer.Logging.LogManager. If you are using log4net and deploying in Optimizely DXP, replace log4net with EPiServer.Logging. See also Logging for more information on switching logging APIs.

EPiServer.Logging.TraceLoggerFactory

The EPiServer.Logging.TraceLoggerFactory logger redirects all log messages to diagnostics trace.

Optimizely log levelmaps to 
Optimizely Critical and Error Logsystem diagnostics trace error level
Optimizely Warning Log API system diagnostics trace warning level
Optimizely Information Log API system diagnostics trace Information level
Optimizely Debug and Trace Log APInot logged

You enable EPiServer.Logging.TraceLoggerFactory like this:

<appSettings>
      <add key="episerver:LoggerFactoryType" 
           value="EPiServer.Logging.TraceLoggerFactory, EPiServer.Framework" />
</appSettings>

Or from the episerver.framework section like this:

<episerver.framework loggerFactoryType="EPiServer.Logging.TraceLoggerFactory, EPiServer.Framework">

EPiServer.Logging.TraceSourceLoggerFactory

The EPiServer.Logging.TraceSourceLoggerFactory redirects all log messages to diagnostics trace source. In this implementation each logger name has its own source switch trace.

Optimizely log levelmaps to 
Optimizely Critical Log API levelsystem diagnostics trace source critical level
Optimizely Error Log API levelsystem diagnostics trace source error level
Optimizely Warning Log API level system diagnostics trace source warning level
Optimizely Information Log API level system diagnostics trace source Information level
Optimizely Debug and Trace Log APIsystem diagnostics Verbose

You can enable the EPiServer.Logging.TraceSourceLoggerFactory like this:

<appSettings>
      <add key="episerver:LoggerFactoryType" 
           value="EPiServer.Logging.TraceSourceLoggerFactory, EPiServer.Framework" />
</appSettings>

Or from the episerver.framework section like this:

<episerver.framework loggerFactoryType="EPiServer.Logging.TraceSourceLoggerFactory, EPiServer.Framework">

By default, the logging level is set to the Error level. If you need to log lower levels than the Error level you need to configure it in the system.diagnostics section like this:

<system.diagnostics>
      <sources>
        <source name="logger name" 
                switchName="logger name" 
                switchType="System.Diagnostics.SourceSwitch"/>
      </sources>
      <switches>
        <add name="logger name" 
             value="Verbose" />
      </switches>
</system.diagnostics>

Register Logger Factory via configuration

To register a logger factory via configuration, you need to add the logger factory type in the appSettings section:

<appSettings>
      <add key="episerver:LoggerFactoryType" 
           value="the custom logger factory type" />
</appSettings>

Or from episerver.framework section:

<episerver.framework loggerFactoryType="the custom logger factory type">

📘

Note

The appsetting section value always has a higher priority than the episerver.framework section value.