LinqToSqlLogger as promised
As I promise in my past blog post Troubleshooting database tool – SqlClientLogger that I should deliver a logger for LinqToSql also. This is done and it is also located in the support tools area on EPiServer world.
The changes to LinqToSqlLogger and SqlClientLogger are
1) The installation – it has to be configured as a Http installation Module
2) It requires .Net 3.5 – of cause
3) The log4net logger is named “LinqToSqlLogger”
Transactions doesn’t work (yet), this means that saving operations break the logger.
This tool logs every LinqToSql call to the database done by the
application layer with a stack trace and a time it took to execute
the query. The benefits of using this tool is that it prints out
a stack trace so it’s easy to locate what code that generates the
database call. The logs are written to log4net and should appear in
the sites log file.
Drop the assemblies in the packages bin/ folder to your sites bin/ folder
Add a reference to the initialization module handler for LinqToSqlLogger in the sites
<add name="LinqToSqlLoggerModule" type="LinqToSqlLogger.InitializeModule, LinqToSqlLogger" />
When the LinqToSqlLogger is installed on the site it is going to send
log4net messages using the logger “LinqToSqlLogger”.
Log4Net logger levels
DEBUG – prints out database command, stack trace and execution time
INFO – prints out database command and execution time.
WARN – prints out database command, stack trace and execution time the execution time is over 500 ms
Sample of how to configure it in the file EPiServerLog.config (or where your log4net configuration is)
<level value="DEBUG" />
Duration threshold can be set in the appSettings in the web.config file for the keys
SqlClientLoggerDurationFilterMs – a threshold for all logged database calls
SqlClientLoggerDurationWarnFilterMs - a threshold for trigger a warning message, the default is set to 500 ms