之前项目里面用的是Log4.net , 觉得配置文件挺复杂的。
新的这个项目里 , 我用了NLog ,本人菜鸟,写错请见谅。
首先引用Nuget 工具里面引入 NLog 和 Nlog config
引入之后 , 工程项目的引用里面会多了DLL和config文件
然后我们可以编辑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="d:\temp\nlog-internal.log">
<!-- optional, add some variables
https://github.com/nlog/NLog/wiki/Configuration-file#variables
-->
<variable name="fileFormat"
value="${newline}date: ${date}
${newline}level: ${level}
${newline}logger: ${logger}
${newline}machinename: ${machinename}
${newline}message: ${message}
${newline}appdomain: ${appdomain}
${newline}assembly-version: ${assembly-version}
${newline}basedir: ${basedir}
${newline}callsite: ${callsite}
${newline}counter: ${counter}
${newline}nlogdir: ${nlogdir}
${newline}processid: ${processid}
${newline}processname: ${processname}
${newline}specialfolder: ${specialfolder}
${newline}stacktrace: ${stacktrace}
${newline}
${newline}" />
<!--
See https://github.com/nlog/nlog/wiki/Configuration-file
for information on customizing logging rules and outputs.
备注:maxArchiveFiles代表日志文件数量,如0,则无限制。
archiveAboveSize代表日志文件大小 , 如1024是1KB。
-->
<targets>
<!--
add your targets here
See https://github.com/nlog/NLog/wiki/Targets for possible targets.
See https://github.com/nlog/NLog/wiki/Layout-Renderers for the possible layout renderers.
-->
<!--
Write events to a file with the date in the filename.
<target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
layout="${longdate} ${uppercase:${level}} ${message}" />
-->
<target name="file" xsi:type="File"
fileName="${basedir}/Logs/${date:format=yyyy-MM-dd}/${shortdate}.log"
layout="${fileFormat}"
maxArchiveFiles="0"
archiveAboveSize="102400" />
</targets>
<rules>
<!-- add your logging rules here -->
<!--
Write all events with minimal level of Debug (So Debug, Info, Warn, Error and Fatal, but not Trace) to "f"
这里的writeTo是上面target的名字
<logger name="*" minlevel="Debug" writeTo="f" />
-->
<logger name="*" minlevel="Trace" writeTo="file"/>
</rules>
</nlog>
可以看到最注意的内容就是 : file Format (日志内容格式) 和 file target (日志文件存放地方)
做好了config配置以后,可以写一个共用的类,如
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ClassLibraryCommonHelp
{
public class LogHelp
{
private static NLog.Logger _logger = NLog.LogManager.GetCurrentClassLogger();
public static void Trace(string strMsg)
{
_logger.Trace(strMsg);
}
public static void Debug(string strMsg)
{
_logger.Debug(strMsg);
}
public static void Info(string strMsg)
{
_logger.Info(strMsg);
}
public static void Warn(string strMsg)
{
_logger.Warn(strMsg);
}
public static void Error(string strMsg)
{
_logger.Error(strMsg);
}
public static void Fatal(string strMsg)
{
_logger.Fatal(strMsg);
}
}
}
有了LogHelp就可以在记录catch exception内容了 。
也可以用于记录info 等。
try
{
for (int i = 1; i < 1000; i++) {
LogHelp.Info("count" + i);
}
DateTime dd = DateTime.Parse("aaaaaa");//error
}
catch (Exception ex)
{
LogHelp.Error(ex.Message);
}