簡體   English   中英

NLog 正在寫入數據庫,但不是文件

[英]NLog is writing to Database, but not file

我有這些目標:

<target xsi:type="File" name="myAppLoggerTarget" fileName="${basedir}/logs/${shortdate}.log"
        layout="${longdate} ${uppercase:${level}} ${message}" />
<target xsi:type="Database"
    name="myAppLoggerTarget"
    connectionString="Data Source=R5-4500U\SQLEXPRESS;Initial Catalog=BlogDb;Integrated Security=True;"
    commandText="INSERT INTO Logs(CreatedOn,Message,Level,Exception,StackTrace,Logger,Url) VALUES (@datetime,@msg,@level,@exception,@trace,@logger,@url)">
        <parameter name="@datetime" layout="${date}" />
        <parameter name="@msg" layout="${message}" />
        <parameter name="@level" layout="${level}" />
        <parameter name="@exception" layout="${exception}" />
        <parameter name="@trace" layout="${stacktrace}" />
        <parameter name="@logger" layout="${logger}" />
        <parameter name="@url" layout="${aspnet-request-url}" />
</target>

這條規則:

<logger name="myAppLoggerRules" minlevel="Debug" writeTo="myAppLoggerTarget" />

出於某種原因,當我打電話時: GetLogger("myAppLoggerRules").Debug(message); ,日志只保存到數據庫,不保存到文件。

當我注釋掉數據庫目標時,文件目標工作正常......

我很確定您需要在每個目標上使用唯一的名稱。 所以你的代碼應該是:

<target xsi:type="File" name="file" fileName="${basedir}/logs/${shortdate}.log"
        layout="${longdate} ${uppercase:${level}} ${message}" />
<target xsi:type="Database"
    name="database"
    connectionString="Data Source=R5-4500U\SQLEXPRESS;Initial Catalog=BlogDb;Integrated Security=True;"
    commandText="INSERT INTO Logs(CreatedOn,Message,Level,Exception,StackTrace,Logger,Url) VALUES (@datetime,@msg,@level,@exception,@trace,@logger,@url)">
        <parameter name="@datetime" layout="${date}" />
        <parameter name="@msg" layout="${message}" />
        <parameter name="@level" layout="${level}" />
        <parameter name="@exception" layout="${exception}" />
        <parameter name="@trace" layout="${stacktrace}" />
        <parameter name="@logger" layout="${logger}" />
        <parameter name="@url" layout="${aspnet-request-url}" />
</target>

...

<logger name="myAppLoggerRules" minlevel="Debug" writeTo="file" />
<logger name="myAppLoggerRules" minlevel="Debug" writeTo="database" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM