说明
之前网上看到很多资料都是如何使用配置文件去使用Nlog,对于我一个搞工控而不是互联网的人来说,很麻烦
后面查找资料做了个免配置版,只要找个对象就好了,什么?找不到对象?new一个嘛!
第一步
nugit下载安装nlog
第二步
引用这些
using NLog;
using NLog.Config;
using NLog.Layouts;
using NLog.Targets;
using NLog.Targets.Wrappers;
一个字段一个静态属性
Logger _logger;
public static LoggingConfiguration Configure { get; protected set; }
开始构造
public NlogHelper(string target, string format = "txt")
{
Target = target;
Configure = LogManager.Configuration ?? new LoggingConfiguration();
FileTarget nlogTarget = new FileTarget();
nlogTarget.Name = target;
nlogTarget.FileName = $"./logs/{target}/{target}-" +"${shortdate}" + $".{format}";
nlogTarget.Layout = Layout.FromString("${longdate} [${level}]: ${message}");
//异步写入
AsyncTargetWrapper wrapper = new AsyncTargetWrapper(nlogTarget);
wrapper.Name = target;
Configure.AddTarget(nlogTarget.Name, wrapper);
Configure.LoggingRules.Add(new LoggingRule(target, LogLevel.Debug, wrapper) { Final = true });
LogManager.Configuration = Configure;
_logger = LogManager.GetLogger(target);
}
对外公开个方法
public void Debug(string msg)
{
_logger.Debug(msg);
}
第三步:使用
class Program
{
static void Main(string[] args)
{
NlogHelper logger = new NlogHelper("test");
while (true)
{
logger.Debug($"{DateTime.Now}");
Thread.Sleep(2000);
}
}
}
效果:
PS:有个Bug,不要动态创建日志,否则耗时会越来越长,使用了一年后,有一次因为懒在个方法里面new了一下,差点搞死我【狗头】