Csharp/C#教程:在NLog中运行时添加/删除日志文件分享


在NLog中运行时添加/删除日志文件

我正在写一个小文件转换实用程序。 文件在放入目录时会自动转换。

我正在使用NLog进行日志记录。 除了使用NLog.conf配置的中央日志文件(并接收生成的所有消息)之外,我还想为每个输入文件创建一个额外的日志文件,它具有相似的名称并包含在转换过程中写入的所有日志消息。

不幸的是,我似乎无法在运行时找到如何在适当的规则下正确添加新文件目标。 我希望所有Logger对象在转换过程中写入新的日志文件。

我尝试过类似的东西

 var logfile = new NLog.Targets.FileTarget(); logfile.FileName = fileName + ".log"; logfile.KeepFileOpen = true; logfile.Initialize(); var rule = new NLog.Config.LoggingRule("*", logfile); NLog.LogManager.Configuration.LoggingRules.Add(rule); NLog.LogManager.ReconfigExistingLoggers(); // // Proceed with converting file // logfile.Flush(); NLog.LogManager.Configuration.LoggingRules.Remove(rule); NLog.LogManager.ReconfigExistingLoggers(); 

但是没有创建日志文件。

我错了什么? 任何的想法?

这篇post的第二篇文章引导我找到解决方案: http : //nlog-project.org/forum.html#nabble-td1685349

您必须获取当前的NLog配置,对此LoggingConfiguration对象进行更改,然后将其分配回LogManager.Configuration。

这是我使用的代码:

上述就是C#学习教程:在NLog中运行时添加/删除日志文件分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 LoggingConfiguration config = LogManager.Configuration; var logFile = new FileTarget(); config.AddTarget("file", logFile); logFile.FileName = fileName + ".log"; logFile.Layout = "${date} | ${message}"; var rule = new LoggingRule("*", LogLevel.Info, logFile); config.LoggingRules.Add(rule); LogManager.Configuration = config; logger.Info("File converted!"); 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/988397.html

(0)
上一篇 2021年12月23日
下一篇 2021年12月23日

精彩推荐