Tag: 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(); 但是没有创建日志文件。 我错了什么? 任何的想法?

线程安全如何是NLog?

好, 我已经等了好几天才决定发布这个问题,因为我不知道如何说明这一点,重新进入一篇详细的post。 但是,我认为在这一点上要求社区提供帮助是相关的。 基本上,我尝试使用NLog为数百个线程配置记录器。 我认为这将非常简单,但我在几十秒后得到了这个exception:“ InvalidOperationException:Collection被修改;枚举操作可能无法执行 ” 这是代码。 //Launches threads that initiate loggers class ThreadManager { //(…) for (int i = 0; i<500; i++) { myWorker wk = new myWorker(); wk.RunWorkerAsync(); } internal class myWorker : : BackgroundWorker { protected override void OnDoWork(DoWorkEventArgs e) { // "Logging" is Not static – Just to eliminate this […]

使用包装器时,Nlog Callsite错误

我正在使用NLog进行日志记录,我使用包装器来调用日志方法,我的问题是:如果我尝试打印有关调用站点( ${callsite} )的信息,它会打印包装器方法而不是原始方法导致记录器记录。 有没有办法获得调用包装器方法的原始方法?

如何在包装NLog时保留呼叫站点信息

我有一个包装NLog的类(称为NLogger)。 我的日志保存到我的数据库中。 我遇到问题的是如何显示日志记录的位置。 我有这个 但这只是显示Core.Logging.Loggers.NLogLogger.Log这是我的NlogWrapper而不是调用我的包装器的类。 这是我的包装方法 public void Log(LogType messageType, Type context, string message, Exception exception) { NLog.Logger logger = NLog.LogManager.GetLogger(context.Name); LogLevel logLevel = LogLevel.Info; // Default level to info switch (messageType) { case LogType.Debug: logLevel = LogLevel.Debug; break; case LogType.Info: logLevel = LogLevel.Info; break; case LogType.Warning: logLevel = LogLevel.Warn; break; case LogType.Error: logLevel = […]