标签:
Nlog是.net平台下的开源日志组件,相当于log4net用法配置更简单。
用途可以将日志输出到数据库,文本文件,控制台等。
首先引用NLog.dll,顺便也将NLog.xml丢到运行目录
准备工作完后,接下来的工作就非常快
添加NLog.config将设置为始终复制到运行目录下,具体配置如下
1 <?xml version="1.0" encoding="utf-8" ?> 2 <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 4 <!-- 定义参数: 5 ${basedir}:系统路径 6 ${shortdate}:短日期 yyyy-MM-dd(例:2013-01-31) 7 ${basedir}/Logs/${shortdate}:即为在系统路径下的Logs文件夹下面的日期文件夹--> 8 <variable name="logDirectory" value="${basedir}/Logs/${shortdate}"/> 9 <targets> 10 <!-- 定义输出模板: 11 type="File":这个记录方式为文件类型 12 fileName="${logDirectory}/All.log":表示输出到文件All.log中 13 layout="...":输出文件中错误的显示格式 14 ${logDirectory}:为上述定义的路径 15 ${longdate}:输出长日期 yyyy-MM-dd HH:mm:ss.ffff(例:2013-01-31 14:49:21.2120) 16 ${level}:错误等级(由低到高为Trace,Debug,Info,Warn,Error,Fatal) 17 ${newline}:输出 新的一行 18 ${stacktrace}:输出 堆栈信息 19 ${callsite:className=True:fileName=True:includeSourcePath=True:methodName=True}:输出 命名空间.类名.方法名(文件路径:行号) 20 ${message}:输出错误信息--> 21 <target xsi:type="File" name="AllFile" fileName="${logDirectory}/All.log" 22 layout="${longdate} ■${level}${newline} ▲${stacktrace}${newline} ◇${callsite:className=True:fileName=True:includeSourcePath=True:methodName=True}${newline} ◆${message}${newline}${newline}***************************************************************************" > 23 </target> 24 <!-- 定义输出到MySQL中: 25 type="Database":这个记录方式是数据库 26 dbProvider="MySql.Data.MySqlClient":使用MySQL的连接方式 27 connectionString="Server=XXX.XXX.XXX.XXX;Database=ProjectLogDB;Uid=XXX;Pwd=XXX;":数据库的连接字符串 28 commandText="insert into Logs(CreateDate,LogLevel,CallSite,Massage,StackTrace) values (@CreateDate,@LogLevel,@CallSite,@Massage,@StackTrace)":insert语句 29 <parameter name="CreateDate" layout="${longdate}" />对应到insert语句的参数的值--> 30 <target xsi:type="Database" name="AllDatabase" dbProvider="MySql.Data.MySqlClient" 31 connectionString="Server=XXX.XXX.XXX.XXX;Database=ProjectLogDB;Uid=XXX;Pwd=XXX;" 32 commandText="insert into Logs(CreateDate,LogLevel,CallSite,Massage,StackTrace) values (@CreateDate,@LogLevel,@CallSite,@Massage,@StackTrace)"> 33 <parameter name="CreateDate" layout="${longdate}" /> 34 <parameter name="LogLevel" layout="${level}" /> 35 <parameter name="CallSite" layout="${callsite:className=True:fileName=True:includeSourcePath=True:methodName=True}" /> 36 <parameter name="Massage" layout="${message}" /> 37 <parameter name="StackTrace" layout="${stacktrace}" /> 38 </target> 39 </targets> 40 <rules> 41 <!-- 定义输出日志: 42 name="*":记录所有信息 43 minlevel="Trace":记录的最低错误级别为Trace 44 writeTo="AllFile":日志写入AllFile的target中--> 45 <logger name="*" minlevel="Trace" writeTo="AllFile,AllDatabase" /> 46 </rules> 47 </nlog>
调用如下
public static Logger log = LogManager.GetLogger("Program");
static void Main(string[] args)
{
log.Trace("Program.Main do someting...");
log.Debug("Debug99999999999");
log.Info("Info------------");
}
标签:
原文地址:http://www.cnblogs.com/JaggerMan/p/4884504.html