zoukankan      html  css  js  c++  java
  • 转:NLog 自定义日志内容,写日志到数据库;修改Nlog.config不起作用的原因

    转:http://www.cnblogs.com/tider1999/p/4308440.html

    NLog的安装请百度,我安装的是3.2。NLog可以向文件,数据库,邮件等写日志,想了解请百度,这里讲怎么写入数据库,及常常会遇到的问题:

    1、layout render 

      NLog内置了很多日志内容格式,样子就是${longdate}之类的,详见:https://github.com/NLog/NLog/wiki/Layout-Renderers

    2、如果我们要自定义日志: 

    复制代码
    <target xsi:type="Database" name="LogOnlog" connectionStringName ="DataBase" >
    <commandText>
    Insert into MyLog(Operator_name,Operator_Type,IP,DateTime,Operation) Values(@Operator_name,@Operator_Type,@IP,@DateTime,@Operation);
    </commandText>
    <parameter name = "@Operator_name" layout = "${event-context:item=Operator_name}"/>
    <parameter name = "@Operator_Type" layout = "${event-context:item=Operator_Type}" />
    <parameter name = "@DateTime" layout = "${event-context:item=DateTime}"/>
    <parameter name = "@IP" layout = "${event-context:item=IP}" />
    <parameter name = "@Operation" layout = "${event-context:item=Operation}" />
    
    </target>
    
    </targets>
    
    <rules>
    <logger name="*" minlevel="Trace " writeTo="LogOnlog"/>
    </rules>
    复制代码
    ${event-context:item=Operation}中:后面的“Operation”在生成Logger时会形成名为“Operation”的键,我们就可以在代码中对他赋值,详见:https://github.com/NLog/NLog/wiki/EventContext-Layout-Renderer。我代码中是这样:
    复制代码

    Logger logger = LogManager.GetCurrentClassLogger(); //不能用 Logger logger =new Logger();,会报错:“NLog.Logger.Logger()”不可访问,因为它受保护级别限制
    LogEventInfo lei = new LogEventInfo();
    lei.Properties["Operator_name"] = Opeator_Name;
    lei.Properties["Operator_Type"] = Operator_Type;
    lei.Properties["DateTime"] = DateTime.Now;
    lei.Properties["IP"] = GetClientIPOrAdd.GetIP();
    lei.Properties["Operation"] = Operation;
    lei.Level = LogLevel.Info;
    logger.Log(lei);

    复制代码

    3、要点:当我们修改 NLog.config 文件时,要重新编译解决方案,修改才会起作用。这个应该是很多人使用NLog不成功的一个巨坑!

      至于网文中及NLog文档中介绍的:加入 aotuReload="true" 属性的办法,不起作用,不知道是不是我有没有注意到的方法。

    4、收集的讲解NLog比较详细的文章:

      http://www.cnblogs.com/sorex/archive/2013/01/31/2887174.html

      http://www.cnblogs.com/Gyoung/archive/2012/10/18/2729613.html

      http://blog.csdn.net/viviachen/article/details/19171661

      http://www.cnblogs.com/Irving/p/3449048.html(这个很不错)

  • 相关阅读:
    CentOS虚拟机和物理机共享文件夹实现
    集训第六周 数学概念与方法 概率 数论 最大公约数 G题
    集训第六周 数学概念与方法 概率 F题
    集训第六周 E题
    集训第六周 古典概型 期望 D题 Discovering Gold 期望
    集训第六周 古典概型 期望 C题
    集训第六周 数学概念与方法 UVA 11181 条件概率
    集训第六周 数学概念与方法 UVA 11722 几何概型
    DAG模型(矩形嵌套)
    集训第五周 动态规划 K题 背包
  • 原文地址:https://www.cnblogs.com/skyapplezhao/p/5690532.html
Copyright © 2011-2022 走看看