为什么我不能通过 NLog 将日志记录保存到数据库?
Why I can't save logging to database via NLog?
为什么我无法通过 NLog 将日志记录保存到数据库?然后我保存到文件工作正常,但没有保存到数据库。
我的 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">
<targets>
<target name="alllogs" xsi:type="File" fileName="C:\Users\Artyrik\Desktop\RVT\RVT_Administrator\RVT_Administrator\file.txt" />
<target name="database" xsi:type="Database" connectionString="Server=DESKTOP-GDI15RS\SQLEXPRESS;Database=RVTLogs;Trusted_Connection=True;MultipleActiveResultSets=true"
commandText="insert into dbo.Administrator (
MachineName, Logged, Level, Message,
Logger, Callsite, Exception
) values (
@MachineName, @Logged, @Level, @Message,
@Logger, @Callsite, @Exception
);">
<parameter name="@MachineName" layout="${machinename}" />
<parameter name="@Logged" layout="${date}" />
<parameter name="@Level" layout="${level}" />
<parameter name="@Message" layout="${message}" />
<parameter name="@Logger" layout="${logger}" />
<parameter name="@Callsite" layout="${callsite}" />
<parameter name="@Exception" layout="${exception:tostring}" />
</target>
</targets>
<rules>
<!--<logger name="Admin" minlevel="Trace" writeTo="alllogs" />
<logger name="User" minlevel="Trace" writeTo="alllogs" />-->
<logger name="AdminLog" minlevel="Trace" writeTo="database" />
</rules>
</nlog>
在 Class 中实施:
```
private static Logger _nLog = LogManager.GetLogger("AdminLog");
_nLog.Info(data.IP + " tried to auth.");```
您需要将 internalLogFile 参数添加到您的 nlog 标记中。如果发生错误,您将有一个内部日志并查看您的配置有什么问题:
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
internalLogLevel="Info"
internalLogFile="c:\temp\internal-nlog.txt">
为什么我无法通过 NLog 将日志记录保存到数据库?然后我保存到文件工作正常,但没有保存到数据库。 我的 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">
<targets>
<target name="alllogs" xsi:type="File" fileName="C:\Users\Artyrik\Desktop\RVT\RVT_Administrator\RVT_Administrator\file.txt" />
<target name="database" xsi:type="Database" connectionString="Server=DESKTOP-GDI15RS\SQLEXPRESS;Database=RVTLogs;Trusted_Connection=True;MultipleActiveResultSets=true"
commandText="insert into dbo.Administrator (
MachineName, Logged, Level, Message,
Logger, Callsite, Exception
) values (
@MachineName, @Logged, @Level, @Message,
@Logger, @Callsite, @Exception
);">
<parameter name="@MachineName" layout="${machinename}" />
<parameter name="@Logged" layout="${date}" />
<parameter name="@Level" layout="${level}" />
<parameter name="@Message" layout="${message}" />
<parameter name="@Logger" layout="${logger}" />
<parameter name="@Callsite" layout="${callsite}" />
<parameter name="@Exception" layout="${exception:tostring}" />
</target>
</targets>
<rules>
<!--<logger name="Admin" minlevel="Trace" writeTo="alllogs" />
<logger name="User" minlevel="Trace" writeTo="alllogs" />-->
<logger name="AdminLog" minlevel="Trace" writeTo="database" />
</rules>
</nlog>
在 Class 中实施:
```
private static Logger _nLog = LogManager.GetLogger("AdminLog");
_nLog.Info(data.IP + " tried to auth.");```
您需要将 internalLogFile 参数添加到您的 nlog 标记中。如果发生错误,您将有一个内部日志并查看您的配置有什么问题:
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
internalLogLevel="Info"
internalLogFile="c:\temp\internal-nlog.txt">