zoukankan      html  css  js  c++  java
  • .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的。

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

  • 相关阅读:
    和尚和屠夫
    不要变成自己讨厌的人
    ngnix 反向代理来解决前端跨域问题
    Python 进阶 异步async/await
    Java 基础 多线程和线程池基础
    Java 基础 IO流之序列化
    Python 元类
    selenium 淘宝登入反爬虫解决方案(亲测有效)
    Java 基础 IO流(转换流,缓冲)
    Java 基础 IO流
  • 原文地址:https://www.cnblogs.com/hnsongbiao/p/8858191.html
Copyright © 2011-2022 走看看