An administrator can configure how Exago handles logging in order to change or extend functionality.
By default Exago saves a log file WebReportsLog.txt
to the application’s Temp path (specified in the base configuration). The logger maintains a lock on the file for the lifespan of the application. The log file cannot be edited or deleted without restarting the application or releasing the lock.
Note: As of version 2018.1, the .NET API logs to the file [Temp]\WebReportsApiLog.txt
There are five configurable verbosity levels for the logger. By default, Exago logs at the Info level.
Use the following administrative setting to set the log level or disable logging:
( Other Settings ) Write Log File
Start time, userId, companyId, full report name, filter summary.
End time, runtime, userId, companyId, full report name.
The logger can load its configuration from a file and continually watch the file for changes. A config file can be used to lock or unlock the log file, change the log file name and path, as well as customize and extend logging capability.
Note: A custom log configuration file will override the application's configuration settings.
To use a custom log configuration, create a file called log4net.config
in the Config directory of the Exago web application. The following shows a sample config file:
<?xml version="1.0" encoding="UTF-8"?> <log4net> <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="C:\Exago\Temp\WebReportsLog.txt" /> <encoding value="utf-8" /> <appendToFile value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="10" /> <maximumFileSize value="1MB" /> <staticLogFileName value="true" /> <lockingModel type="log4net.Appender.FileAppender+ExclusiveLock" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date %-5level [%property{SessionId}] %message%newline" /> </layout> </appender> <!-- Setup the root category, add the appenders and set the default level --> <root> <level value="INFO" /> <appender-ref ref="RollingFileAppender" /> </root> </log4net>
For more information and extensibility, see: Apache log4net. See the following examples for some simple modifications:
<file value="Path\To\Log.txt" />
Specifies the directory and filename for the log file.
<level value="INFO" />
Specifies the Exago logging level: ERROR, INFO, or DEBUG.
<lockingModel type="log4net.Appender.FileAppender+ExclusiveLock" />
Configures the locking model in use for the log file. To temporarily disable the write lock, you can use: log4net.Appender.FileAppender+MinimalLock
Note: This will result in a performance reduction until it is reset.
<conversionPattern value="%date %-5level [%property{SessionId}] %message%newline" />
Configures which information is logged and the format of how it is written.
See Apache log4Net SDK Documentation - PatternLayout Class for details on how to format the conversionPattern
.
Exago uses a specific version of the log4net.dll file that is shipped with the application. When a .NET embedding application implements a different version of log4net, there can be conflicts. The solution is to add a runtime assembly binding redirect to the Exago web.config.
<dependentAssembly> <assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral"/> <bindingRedirect oldVersion="1.2.11.0" newVersion="1.2.15.0" /> </dependentAssembly>
See Redirecting Assembly Versions (MSDN) for more information.