• .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的。

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

  • 相关阅读:
    部分页面开启宽屏模式
    门户diy实现翻页功能的方法
    git命令详解,从入门到装逼
    array方法常用记载
    vue 生命周期的理解(created && mouted的区别)
    微信小程序传值的几种方式
    data-*
    本地存储和会话存储以及cookie的处理
    vue的安装和项目构建
    进击的UI----------动画
  • 原文地址:https://www.cnblogs.com/hnsongbiao/p/8858191.html
Copyright © 2020-2023  润新知