.Net Core Nlog日志記錄到MySql


  前段時間想要實現這個功能網上找了很多資料,現在整理一下發布出來,希望給大家一點幫助。 首先是依賴項的選擇:

  關於NLog版本不是最新是因為最新版本有點問題我試了試不支持,所以選了這幾個版本,MySql的版本是因為Nlog的配置默認是不支持MySql直連的。這是准備工作。

  然后是Nlog.config的配置:

<target xsi:type="Null" name="blackhole" />
<target xsi:type="Database" name="database" dbProvider="MySql.Data.MySqlClient.MySqlConnection,Mysql.Data" connectionstring="server=;user id=;password=;Database=testing;" commandText="insert into access_log(app_key,access_ip,access_time,msg) values (@app_key,@access_ip,@access_time,@msg)" >
<parameter name="app_key" layout="${event-context:item=app_key}" />
<parameter name="access_ip" layout="${event-context:item=access_ip}" />
<parameter name="access_time" layout="${event-context:item=access_time}" />
<parameter name="msg" layout="${event-context:item=msg}" />
</target>

  這個parameter的屬性是選擇性上次必要的,Log日志內容需要自己定義格式和它一樣就可以了,不需要的日志他是不會記錄的

<rules>

<logger name="*" writeTo="database"/>

</rules>

  這是規則。

//LogEventInfo ei = new LogEventInfo();
//ei.Level = LogLevel.Info;
//ei.Properties["app_key"] = param["appKey"].ToString();
//ei.Properties["access_ip"] = accessIp;
//ei.Properties["access_time"] =accessDate;
//ei.Properties["msg"] = log;
//_logger.Log(ei);

  這是日志格式。其他問題其實網上都有解答,最主要的問題就是dbProvider屬性是不能直接寫MySql的。

  有什么不足和建議可以和我提,共同進步!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM