Three steps are required: 1 create a suitable table in the data 2 configure nlog.config 3 call
1 Create the table
CREATE TABLE [dbo].[NLogInfo]( [LogId] [int] IDENTITY(1,1) NOT NULL, [Date] [datetime] NOT NULL, [Origin] [nvarchar](100) NULL, [Level] [nvarchar](50) NULL, [Message] [nvarchar](max) NULL, [Detail] [nvarchar](max) NULL, ) ON [PRIMARY]
2 Configure nlog.config
<?xml version="1.0" encoding="utf-8" ?> <nlog xmlns = "http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation = "http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd" autoReload="true" throwExceptions="false" internalLogLevel="Trace" internalLogFile="Nlog.log"> <variable name="variable1" value=" ${newline} date: ${date} ${newline}level: ${level} $ {newline} logger : $ {logger} ${newline}machinename: ${machinename} ${newline}message: ${message} ${newline}appdomain: ${appdomain} ${newline}assembly-version: ${assembly-version} ${newline}basedir: ${basedir} ${newline}callsite: ${callsite} ${newline}callsite-linenumber: ${callsite-linenumber} ${newline}counter: ${counter} ${newline}nlogdir: ${nlogdir} ${newline}processid: ${processid} ${newline}processname: ${processname} ${newline}specialfolder: ${specialfolder} ${newline}stacktrace: ${stacktrace}${newline}" /> <targets> <!-- <target name="log_file" xsi:type="File" fileName="${basedir}/LogInformation/${level}_${shortdate}.txt" layout="${variable1}" />--> <target name="log_database" xsi:type="Database" connectionString="Data Source=.;Initial Catalog=Database Name;Persist Security Info=True;User ID=sa;Password=Password"> <commandText> insert into NLogInfo([Date],[origin],[Level],[Message],[Detail]) values (getdate(), @origin, @logLevel, @message,@detail); </commandText> <!--Log source--> <parameter name="@origin" layout="${callsite}" /> <!--Log level--> <parameter name="@logLevel" layout="${level}" /> <!--Log message--> <parameter name="@message" layout="${message}" /> <!--Reference variable1 information--> <parameter name="@detail" layout="${variable1}" /> </target> </targets> <rules> <!--<logger name="*" writeTo="log_file" />--> <logger name="*" writeTo="log_database" /> </rules> </nlog>
3 calls
private Logger logger = LogManager.GetCurrentClassLogger();