C#日志框架NLog
1.安装
nutGue中搜索 NLog 进行安装,它会提示你根据你.net版本选择相应的版本
2.配置
安装后会自动在项目目录项建立NLog.config
文件, 这是人家的配置文件,照搬
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
autoReload="true"
throwExceptions="false"
internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
<!-- optional, add some variables
https://github.com/nlog/NLog/wiki/Configuration-file#variables
-->
<variable name="myvar" value="myvalue"/>
<!--
See https://github.com/nlog/nlog/wiki/Configuration-file
for information on customizing logging rules and outputs.
-->
<targets>
<!--屏幕打印消息-->
<target name="console" xsi:type="ColoredConsole"
layout="${date:format=HH\:mm\:ss}> ${message}"/>
<!--VS输出窗口-->
<target name="debugger" xsi:type="Debugger"
layout="${date:format=HH\:mm\:ss} | ${level:padding=-5} | ${message}" />
<!--保存至文件-->
<target name="error_file" xsi:type="File" maxArchiveFiles="30"
fileName="${basedir}/Logs/Error/${shortdate}/error.txt"
layout="${longdate} | ${level:uppercase=false:padding=-5} | ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}" />
<target name="debugger_file" xsi:type="File" maxArchiveFiles="30"
fileName="${basedir}/Logs/Error/${shortdate}/debug.txt"
layout="${longdate} | ${level:uppercase=false:padding=-5} | ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}" />
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="debugger" />
<logger name="*" minlevel="Debug" writeTo="debugger_file" />
<logger name="*" minlevel="Error" writeTo="error_file" />
</rules>
</nlog>
封装一个工具类以操控NLog,如果后续项目使用其他的日志框架,直接改此工具类就好了
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace XXX.util
{
class Logger
{
NLog.Logger logger;
private Logger(NLog.Logger logger)
{
this.logger = logger;
}
public Logger(string name)
: this(NLog.LogManager.GetLogger(name))
{
}
public static Logger Default { get; private set; }
static Logger()
{
Default = new Logger(NLog.LogManager.GetCurrentClassLogger());
}
public void Debug(string msg, params object[] args)
{
logger.Debug(msg, args);
}
public void Debug(string msg, Exception err)
{
logger.Debug(msg, err);
}
public void Info(string msg, params object[] args)
{
logger.Info(msg, args);
}
public void Info(string msg, Exception err)
{
logger.Info(msg, err);
}
public void Trace(string msg, params object[] args)
{
logger.Trace(msg, args);
}
public void Trace(string msg, Exception err)
{
logger.Trace(msg, err);
}
public void Error(string msg, params object[] args)
{
logger.Error(msg, args);
}
public void Error(string msg, Exception err)
{
logger.Error(msg, err);
}
public void Fatal(string msg, params object[] args)
{
logger.Fatal(msg, args);
}
public void Fatal(string msg, Exception err)
{
logger.Fatal(msg, err);
}
}
}
3.使用
在需要使用的类里定义
public static util.Logger logger=new util.Logger("configFileName");
然后调用`logger`的Debug、Error....即可