转: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(这个很不错)

转:NLog 自定义日志内容,写日志到数据库;修改Nlog.config不起作用的原因的更多相关文章

  1. Yii2.0中文开发向导——自定义日志文件写日志

    头部引入log类use yii\log\FileTarget; $time = microtime(true);$log = new FileTarget();$log->logFile = Y ...

  2. 异步调试神器Slog,“从此告别看日志,清日志文件了”

    微信调试.API调试和AJAX的调试的工具,能将日志通过WebSocket输出到Chrome浏览器的console中  — Edit 92 commits 4 branches 3 releases ...

  3. mysql 开发进阶篇系列 39 mysql日志之二进制日志(binlog)

    一.概述 二进制日志(binlog)记录了所有的DDL(数据定义语言)语句和DML(数据操纵语言)语句,但是不包括数据查询语句, 语句以"事件"的形式保存,它描述了数据的更改过程, ...

  4. NetCore2.2使用Nlog自定义日志写入路径配置方式

    在一些特定场景的业务需求下,日志需要写入到不同的路径下提供日志分析.第一种:默认Nlog可以通过日志级别来区分路径,——优点是不需要额外配置,开箱即用——缺点是不够灵活,如果超过级别数量,则不满足需求 ...

  5. [转]ASP.NET Core 开发-Logging 使用NLog 写日志文件

    本文转自:http://www.cnblogs.com/Leo_wl/p/5561812.html ASP.NET Core 开发-Logging 使用NLog 写日志文件. NLog 可以适用于 . ...

  6. ASP.NET Core 开发-Logging 使用NLog 写日志文件

    ASP.NET Core 开发-Logging 使用NLog 写日志文件. NLog 可以适用于 .NET Core 和 ASP.NET Core . ASP.NET Core已经内置了日志支持,可以 ...

  7. How To Write In Sharepoint Log File 怎么对自定义的MOSS代码写日志

    How To Write In Sharepoint Log File 怎么对自定义的MOSS代码写日志 Add Microsoft.Office.Server dll in your project ...

  8. .net core 2.0使用NLog写日志文件

    原文地址:传送门 之前也看了 linezero 大佬写的教程,但是总是没有成功写入日志文件.按照 曲廉卿 的已成功,以下正文: 最近研究了一下NLog的使用方式,简单的入了一下门. 实现的功能,对于不 ...

  9. [转]log4net 发布到生产环境不写日志的解决方法--使用 NLog日志

    本文转自:http://www.cnblogs.com/weiweictgu/p/5848805.html 1.升级到log4net的最新版 PM下执行 Install-Package log4net ...

随机推荐

  1. zk框架window之间传值操作

    .zul中向Action传递参数: <listcell> <button label="修改" onClick="@command('edit',id= ...

  2. ruby 除法运算

    在Ruby中根据运算对象的值的不同进行不同的操作.除法运算符"/"的两边同为Interger对象时运算符进行整除运算,其中任意一方为Float对象时进行实数的除法运算. 7 / 2 ...

  3. Angular.js表单以及与Bootatrap的使用

    首先从angular.js的目录开始,如下图,知道了我们要学什么,然后再开始有目的的学习与对比. 1.从表达式开始: ng-app指令初始化一个 AngularJS 应用程序. ng-init指令初始 ...

  4. 路由器换大Flash

    使用winhex自建编程器固件(我的是TP-WR941N V6) 1:使用winhex新建一个8M,16M的文件,编辑-全选,填充选块,填充十六进制数值 FF : 2:打开4M的原厂编程器固件(或者自 ...

  5. 使用tomcat作为web应用容器时,启用新线程找不到Session的问题

    今天做一个功能,为了快速响应前端,业务完成后,另起了一个线程做一些不影响业务的统计工作,然后立即将业务操作结果返回给前台. 结果在新线程里报空指针找不到request对象.检查了下,我们用的是stru ...

  6. linux下如何修改weblogic console登陆的用户名和密码

    1. 执行安装目录下config.sh ./config.sh 2.选择  2|Extend an existing WebLogic configuration 3. 别的一路跳过,到修改secur ...

  7. 转载--CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡

    源地址:http://www.cnblogs.com/mchina/archive/2012/08/27/2644391.html 一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台: ...

  8. LeetCode——Find the Duplicate Number

    Description: Given an array nums containing n + 1 integers where each integer is between 1 and n (in ...

  9. node log4js包

    http://blog.csdn.net/heiantianshi1/article/details/43984601

  10. 十分钟搞懂什么是CGI

    原文:CGI Made Really Easy,在翻译的过程中,我增加了一些我在学习过程中找到的更合适的资料,和自己的一些理解.不能算是严格的翻译文章,应该算是我的看这篇文章的过程的随笔吧. CGI真 ...