I'm looking for an example on how to implement Log4Net in MVC5 with LinqConnect Pro 4.4.553.
I can only find one example of Oracle (which we do not work with), but I can not get it to work for sqlite by DevArt.
I created a seperate Log4Net.config file in the root of my project which includes:
(Do I need to set public keys or version numbers on de DevArt connectionstring? And what are they for version 4.4.553?)
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net debug="true">
<root>
<level value="DEBUG" />
<appender-ref ref="sqlite-appender" />
<!-- Uncomment when basic TextAppender is needed
<appender-ref ref="file-appender" />
-->
</root>
<appender name="file-appender" type="log4net.Appender.FileAppender+MinimalLock">
<file value="log-file.txt" />
<appendToFile value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<appender name="sqlite-appender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="1" />
<!--<connectionType value="System.Data.SQLite.SQLiteConnection, System.Data.SQLite" />-->
<connectionType value="DevArt.Data.SQLite.SQLiteConnection, DevArt.Data.SQLite" />
<connectionString value="Data Source=E:\Development\EDevelopment\MVC\Db\Edb.s3db" />
<!--<connectionString value="Data Source=|DataDirectory|\DebugLog.db;Synchronous=Off " />-->
<commandText value="INSERT INTO nseLog
(
appdomain, aspnetcache, aspnetcontext,
aspnetrequest, aspnetsession, [date],
exception, file, identity, location, level,
line, logger, message, method, ndc,
property, stacktrace, stacktracedetail,
[timestamp], thread, type, username,
utcdate
)
VALUES (
@appdomain, @aspnetcache, @aspnetcontext,
@aspnetrequest, @aspnetsession, @date,
@exception, @file, @identity, @location,
@level, @line, @logger, @message, @method,
@ndc, @property, @stacktrace, @stacktracedetail,
@timestamp, @thread, @type, @username,
@utcdate
)" />
<parameter>
<parameterName value="@appdomain" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%appdomain" />
</layout>
</parameter>
<parameter>
<parameterName value="@aspnetcache" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%aspnet-cache" />
</layout>
</parameter>
<parameter>
<parameterName value="@aspnetcontext" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%aspnet-context" />
</layout>
</parameter>
<parameter>
<parameterName value="@aspnetrequest" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%aspnet-request" />
</layout>
</parameter>
<parameter>
<parameterName value="@aspnetsession" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%aspnet-session{Usuario}" />
</layout>
</parameter>
<parameter>
<parameterName value="@date" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@exception" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%exception" />
</layout>
</parameter>
<parameter>
<parameterName value="@file" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%file" />
</layout>
</parameter>
<parameter>
<parameterName value="@identity" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%identity" />
</layout>
</parameter>
<parameter>
<parameterName value="@location" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%location" />
</layout>
</parameter>
<parameter>
<parameterName value="@level" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level" />
</layout>
</parameter>
<parameter>
<parameterName value="@line" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%line" />
</layout>
</parameter>
<parameter>
<parameterName value="@logger" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
<parameter>
<parameterName value="@method" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%method" />
</layout>
</parameter>
<parameter>
<parameterName value="@ndc" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%ndc" />
</layout>
</parameter>
<parameter>
<parameterName value="@property" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property" />
</layout>
</parameter>
<parameter>
<parameterName value="@stacktrace" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%stacktrace" />
</layout>
</parameter>
<parameter>
<parameterName value="@stacktracedetail" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%stacktracedetail" />
</layout>
</parameter>
<parameter>
<parameterName value="@timestamp" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%timestamp" />
</layout>
</parameter>
<parameter>
<parameterName value="@thread" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread" />
</layout>
</parameter>
<parameter>
<parameterName value="@type" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%type" />
</layout>
</parameter>
<parameter>
<parameterName value="@username" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%username" />
</layout>
</parameter>
<parameter>
<parameterName value="@utcdate" />
<dbType value="DateTime" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%utcdate{yyyy-MM-dd HH:mm:ss}" />
</layout>
</parameter>
</appender>
</log4net>
</configuration>
Code: Select all
CREATE TABLE "main".nseLog (
ID INTEGER PRIMARY KEY AUTOINCREMENT,
[appdomain] TEXT,
[aspnetcache] TEXT,
[aspnetcontext] TEXT,
[aspnetrequest] TEXT,
[aspnetsession] TEXT,
[date] DATE NOT NULL DEFAULT 'now',
[exception] TEXT,
[file] TEXT,
[identity] TEXT,
[location] TEXT,
[level] TEXT,
[line] integer,
[logger] TEXT,
[message] TEXT,
[method] TEXT,
[ndc] TEXT,
[property] TEXT,
[stacktrace] TEXT,
[stacktracedetail] TEXT,
[timestamp] bigint,
[thread] TEXT,
[type] TEXT,
[username] TEXT,
[utcdate] DATE NOT NULL DEFAULT 'now',
[appfree1] TEXT,
[appfree2] TEXT,
[appfree3] TEXT
)
Code: Select all
protected void Application_Start()
{
....
var log4NetPath = Server.MapPath("~/Log4Net.config");
log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(log4NetPath));
}
Code: Select all
public class EController : BaseController
{
private static readonly ILog logger = LogManager.GetLogger(typeof(EController).FullName);
public DbLog()
{
logger.Info("It's working");
logger.Debug("Debug messages are not recorded due to log level");
logger.Warn("It's a warning now");
logger.Error("It's an error now 2");
logger.Fatal("This is the end!");
}
Please help, is there some implementation example (also to file) how to do this?