【问题标题】:Why I can't save logging to database via NLog?为什么我无法通过 NLog 将日志记录保存到数据库?
【发布时间】:2020-11-19 22:32:10
【问题描述】:

为什么我不能通过 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>

在类中实现:

```
private static Logger _nLog = LogManager.GetLogger("AdminLog");
_nLog.Info(data.IP + " tried to auth.");```

【问题讨论】:

    标签: asp.net-core logging model-view-controller nlog


    【解决方案1】:

    您需要将 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">
    

    【讨论】:

    • 谢谢我解决了!问题出在 SQL Server 上。
    猜你喜欢
    • 1970-01-01
    • 2022-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多