Nlog的版本在4.x時還可以不用裝nlog.database這個nuget套件就可以將log寫到資料庫但在5.x之後就要裝nlog.database才可以將log寫到資料庫在asp.net core 3.1時裝4.x,然後nlog.config設定資料庫即可正常寫入在asp.net 6時裝5.x,nlog.config設定資料庫及裝nlog.database這個nuget套件後才可以正常寫入以上就是nlog二大版本的差異,後續的設定基本是相同的了在nlog.config設定寫入目標<targets>
<target name="database" xsi:type="Database" connectionString="${var:connstr}" dbProvider="System.Data.SqlClient">
<commandText>
INSERT INTO NlogTable (Application, Level, Message, Logger, Callsite)
VALUES (@Application, @Level, @Message, @Logger, @Callsite)
</commandText>
<parameter name="@Application" layout="Test" />
<parameter name="@Level" layout="${level}" />
<parameter name="@Message" layout="${message}" />
<parameter name="@Logger" layout="${logger}" />
<parameter name="@Callsite" layout="${callsite}" />
<target name="database" xsi:type="Database" connectionString="${var:connstr}" dbProvider="System.Data.SqlClient">
<commandText>
INSERT INTO NlogTable (Application, Level, Message, Logger, Callsite)
VALUES (@Application, @Level, @Message, @Logger, @Callsite)
</commandText>
<parameter name="@Application" layout="Test" />
<parameter name="@Level" layout="${level}" />
<parameter name="@Message" layout="${message}" />
<parameter name="@Logger" layout="${logger}" />
<parameter name="@Callsite" layout="${callsite}" />