NLog使用中碰到的问题整理

1,日志写mysql数据库报错,

原因:

在sql语句中使用了mysql的函数now() 导致插入失败,

解决办法: 使用参数代替now().

nlog配置文件中设置 throwExceptions="true" internalLogLevel="Debug" 可以是nlog抛出异常方便问题定位,

2、一些layout方法记录:  见:https://github.com/NLog/NLog/wiki/Layout-Renderers

   自定义参数:

 <variable name="myvar" value="myvalue"/>

则参数 myvar 可以直接使用 ${myvar} 得到值 myvalue

也可以在代码中定义:

 <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();
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 文件时,要重新编译解决方案,修改才会起作用。

4、路由规则rule

路由规则主要用于将日志和输出目标匹配起来,它一般有如下几个属性

  • name - 记录者的名字 (允许使用通配符*)
  • minlevel - 匹配日志范围的最低级别
  • maxlevel - 匹配日志范围的最高级别
  • level - 匹配的单一日志级别
  • levels - 匹配的一系列日志级别,由逗号分隔。
  • writeTo - 规则匹配时日志应该被写入的一系列目标,由逗号分隔。

尚未解决的问题:

Logger logger = LogManager.GetLogger(string name);
这个方法中的name参数是干什么用的还是没有搞清楚。 ------------补充-----------------------------

查看了源码  这个name参数好像没什么作用,记录日志的人,默认是当前类名(fullname),暂且当作一个标记使用。

参考地址:

http://www.cnblogs.com/freeliver54/p/6514686.html

http://www.cnblogs.com/TianFang/p/4003749.html

一个系列讲解: http://blog.csdn.net/u010176014/article/details/48655493

官网详细layout文档: https://github.com/NLog/NLog/wiki/Layout-Renderers

NLog使用整理的更多相关文章

  1. 基于.NET平台常用的框架整理(转)

    自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的 学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开源的组件,就目前想到的先整理于此,如果再想到, ...

  2. 【转】基于.NET平台常用的框架整理

    自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累 了一些开源的组件,就目前想到的先整理于此,如果再想到, ...

  3. 基于.NET平台常用的框架整理

    自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开源的组件,就目前想到的先整理于此,如果再想到,就 ...

  4. .NET平台常用的框架整理

    基于.NET平台常用的框架整理 DotNet | 2016-03-31 17:13 (点击上方蓝字,可快速关注我们) 来源:天使不哭 链接:http://www.cnblogs.com/hgmyz/p ...

  5. 基于.NET平台常用的框架整理【转】

    转:http://www.cnblogs.com/hgmyz/p/5313983.html 自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产 ...

  6. ( 转)基于.NET平台常用的框架整理

    自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开源的组件,就目前想到的先整理于此,如果再想到,就 ...

  7. 基于.NET平台常用的框架整理 (转)

    http://www.cnblogs.com/hgmyz/p/5313983.html 自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了 ...

  8. 基于.NET平台常用的框架和开源程序整理

    自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中 也积累了一些开源的组件,就目前想到的先整理于此,如果再想到, ...

  9. .NET方面的框架的整理和总结

    自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开源的组件,就目前想到的先整理于此,如果再想到,就 ...

随机推荐

  1. Chrom Firefox 非安全端口访问

    使用Chrom Firefox 访问非安全端口 问题描述 Firefox 此网址已被限制 此网址使用了一个通常用于网络浏览以外目的的端口.出于安全原因,Firefox 取消了该请求. Chrome 无 ...

  2. formdata 上传图片+进度条

    记得引入jquery //上传进度回调函数:          function progressHandlingFunction(e) {            if (e.lengthComput ...

  3. 关于 Expression is not assignable 错误

    1.在 Build Phases中导入  UIKit.framework 2.在pch中导入头文件 #import <UIKit/UIKit.h> 3.写一个分类 即可解决 贴出分类代码 ...

  4. tomcat中显示本地图片①(未解决)

    <本模块文仅作为学习过程中的自我总结,有需要可参看,欢迎指导与提出建议,很多地方可能断章取义,理解不到位,虚心求学.谢谢!> 资料查阅原因:2018/7/10(做项目中显示详情页面,从数据 ...

  5. P2170 选学霸

    传送门 思路: ① 可以把每个学生都看作点,而那些实力相同的学生就处在同一个连通块内,因为连通块内的同学要么都取,要么不取,所以可以将连通块缩成一个点.只需用并查集维护每个连通块的大小. ② 接着采取 ...

  6. [解决方法] Java-Class.forName() 反射/映射子类 并转化为父类/接口

    实现通过子类名称字符串 动态获取生成子类. 用于模板方法, 抽象工厂模式等. 代码实现: public TheParentClass getSubClass(String subClassName) ...

  7. swig模板引擎汇总

    1. Express中使用swig模板引擎 2.Swig 使用指南 3.jade to html online

  8. 两年前详细分析了ijkplayer的代码

    两年前详细分析了ijkplayer的代码,太久没总结了,现在只能上传一张图片了.把fly替换成ijk就行了. 用diagramDesigner画的,因为这个工具足够简单,用visio不知道要画到什么时 ...

  9. python -- 字符串 for循环

    1.基本数据类型概况        1.int  整数  ==>主要用来做数学计算      2.str  字符串  ==> 可以保存少量数据并进行相应的操作.           (字符 ...

  10. 6种纯css实现loading效果

    1. <div id="loadingWrap1"> <span></span> <span></span> <s ...