对项目添加NLog

安装完成后,在项目里面会自动引入该引入的dll,并且会添加如下两个文件

NLog的配置主要是在这个config文件里。当然也可以将这个文件里面的nlog节点复制到项目配置文件App.config/Web.config里面。

NLog的配置文件主要有3个节点variable,targets,rules。

variable节点用于定义一些变量

<targets /> - 定义日志的目标/输出,下级是<target>

<rules /> - 定义日志的路由规则,下级是<logger>
 
简单配置:
<target name="console" xsi:type ="Console" />   这个是用于在控制台中输出日志信息,一般不配置这个

下面这两个是用于在文本文件里面写入日志,fileName表示日志文件的路径,layout表示日志的格式。大括号里面的变量是系统预定义的,

当然也可以在variable节点里面自定义

<target name="info" xsi:type="File"
fileName="${basedir}/Logs/Info/${shortdate}/info.txt"
maxArchiveFiles="30"
layout="${longdate} | ${level:uppercase=false} | ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}" />
<target name="error" xsi:type="File"
fileName="${basedir}/Logs/Error/${shortdate}/error.txt"
maxArchiveFiles="30"
layout="${longdate} | ${level:uppercase=false} | ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}" />

下面这个是将日志写入数据库的配置,这里配置的是SqlServer,当然还可以配置其他数据库

<target xsi:type="Database"
name="DatabaseFile"
dbProvider="System.Data.SqlClient"
commandText="Insert into ErrorLog(ID, Content, CreateTime) Values(@id, @content, @createTime);"
connectionString="data source=.;initial catalog=pay.log;user id=sa;password=sa;">
<parameter name="@id" layout = "${event-context:item=id}"/>
<parameter name="@content" layout = "${event-context:item=content}" />
<parameter name="@createTime" layout = "${date}"/>

结合上面的target节点,配置如下的路由节点,这些logger节点在rules节点下

<logger name="*" writeTo="DatabaseFile" />
<logger name="*" minlevel="Info" writeTo="info" />
<logger name="*" minlevel="Error" writeTo="error" />
<logger name="*" writeTo="console" />

代码中调用NLog:

public static void DBLog()
{
//log.Error("错误日志");
//log.Info("信息日志");
       //log.Fatal("fatal日志");
LogEventInfo lei = new LogEventInfo();
lei.Properties.Add("id", Guid.NewGuid().ToString());
lei.Properties.Add("content", "sdfsd3222第三代2222");
//lei.Properties.Add("createTime", DateTime.Now);
lei.Level = LogLevel.Info;
log.Log(lei); }

上面注释的3行分别对应target节点里面name为error和info这两个节点配置,fatal的日志和error的日志写在了同一个文件里面。

还有一个统一的方法就是log.Log(LogLevel.Error, "错误2553");根据参数来确定日志的级别,但是这个方法要注意的是,如果参数是error,

那么会在info和error两个地方写入日志,但是只有info的时候,就只在info下有日志。

根据target的配置,调用函数后,日志文件在bin\Release\Logs下

后面的代码是将日志写入数据库的,对应的target节点是DatabaseFile。lei.Level这个属性必须设置,除了为LogLevel.Off外,其他的都可以

将日志写入数据库。要注意的是,在此之前确保数据库里面有相应的表。

												

NLog简单配置与使用的更多相关文章

  1. SCF: 简单配置门面[转]

    原文:https://blog.csdn.net/koqizhao/article/details/82178100 Simple Configuration Facade :简单配置门面  是 代码 ...

  2. SCF: 简单配置门面

    SCF: 简单配置门面 [English]  [中文] Simple Configuration Facade, 简写为 SCF.是 代码 和 外部配置 (properties文件, 环境变量,系统/ ...

  3. .Net core2.0日志组件Log4net、Nlog简单性能测试

    .Net core之Log4net.Nlog简单性能测试 比较log4net.nlog的文件写入性能(.netcore环境),涉及代码和配置如有不正确的地方,还请批评指正. 原创,转载请著名出处:ht ...

  4. .Net项目中NLog的配置与使用

    引言: 因为之前在项目开发中一直都是使用的Log4Net作为项目的日志记录框架,最近忽然感觉对它已经有点腻了,所以尝试着使用了NLog作为新项目的日志记录框架(当然作为一名有志向的攻城狮永远都不能只局 ...

  5. 小丁带你走进git世界一-git简单配置

    小丁带你走进git世界一-git简单配置 1.github的简单配置 配置提交代码的信息,例如是谁提交的代码之类的. git config  –global user.name BattleHeaer ...

  6. 以实际的WebGIS例子探讨Nginx的简单配置

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 以实际项目中的一个例子来详细讲解Nginx中的一般配置,其中涉 ...

  7. CentOS 7.0 使用 yum 安装 MariaDB 与 MariaDB 的简单配置

    1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB,两条命令都可以 systemctl sta ...

  8. ssm简单配置

    MyBatis 是一个可以自定义SQL.存储过程和高级映射的持久层框架. MyBatis 摒除了大部分的JDBC代码.手工设置参数和结果集重获. MyBatis 只使用简单的XML 和注解来配置和映射 ...

  9. 安装MariaDB和简单配置

    1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB systemctl start maria ...

随机推荐

  1. 莫(meng)比(bi)乌斯反演--BZOJ2301: [HAOI2011]Problem b

    n<=50000个询问,每次问a<=x<=b,c<=y<=d中有多少gcd(x,y)=K的(x,y).a,b,c,d,K<=50000. 这大概是入门题辣..这里记 ...

  2. msp430入门编程05

    msp430中C语言的运算符和表达式 msp430中C语言的程序结构06 msp430中C语言的函数及实现07 msp430中C语言操作端口I/O10 msp430中C语言的模块化头文件及实现11 m ...

  3. Linux下汇编语言学习笔记61 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  4. jquery判断单选按钮radio是否选中的方法

    JQuery控制radio选中和不选中方法总结 一.设置选中方法 复制代码代码如下: $("input[name='名字']").get(0).checked=true; $(&q ...

  5. wget下载网络图片

    wget http.......  --no-check-certificate

  6. oracle11g expdp/impdp数据库

    oracle11g导入/导出数据库 导出 .创建目录 sqlplus / as sysdba create directory dbDir as 'd:\oralce_sdic_backup\'; g ...

  7. JSTL简单入门学习实例

    Maven依赖: <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</ ...

  8. HDU-3295-An interesting mobile game(BFS+DFS)

    Problem Description XQ,one of the three Sailormoon girls,is usually playing mobile games on the clas ...

  9. mongodb的备忘录

    https://www.cnblogs.com/best/p/6212807.html

  10. js_html_input中autocomplete="off"在chrom中失效的解决办法 使用JS模拟锚点跳转 js如何获取url参数 C#模拟httpwebrequest请求_向服务器模拟cookie发送 实习期学到的技术(一) LinqPad的变量比较功能 ASP.NET EF 使用LinqPad 快速学习Linq

    js_html_input中autocomplete="off"在chrom中失效的解决办法 分享网上的2种办法: 1-可以在不需要默认填写的input框中设置 autocompl ...