Tag: nlog

建议设计:应用程序中几乎每个对象都有loggger

我正在写一个应用程序。 我使用NLog进行日志记录。 在这个应用程序中几乎每个对象都可以写入日志。 我为此定义了受保护的成员: protected Logger logger; protected virtual Logger Logger { get { return logger ?? (logger = LogManager.GetLogger(this.GetType().ToString())); } } 在这种情况下,我需要为应用程序中的每个基类复制/粘贴此代码。 或者我看到其他选项:使用记录器定义特定于应用程序的根对象并将其子类化。 但在语义上这听起来是错误的,因为对我来说这不是真正的“是 – ”的情况。 有没有更好的选择?

log4net的logger包装器的实现和使用

这个问题与史蒂文的答案有关 – 这里 。 他提出了一个非常好的记录器包装器。 我将在下面粘贴他的代码: public interface ILogger { void Log(LogEntry entry); } public static class LoggerExtensions { public static void Log(this ILogger logger, string message) { logger.Log(new LogEntry(LoggingEventType.Information, message, null)); } public static void Log(this ILogger logger, Exception exception) { logger.Log(new LogEntry(LoggingEventType.Error, exception.Message, exception)); } // More methods here. } 所以,我的问题是创建代理到log4net的实现的正确方法是什么 ? 我应该只使用类型参数添加另一个Log扩展方法,然后在里面创建一个开关吗? […]

Nlog自定义layoutrenderer

任何人都可以为我提供一个非常样本的自定义layoutrenderer用于nlog? 举例来说,我希望在im log中进行缩进 如果我从方法C调用方法B 文本日志文件如下所示: Inside Method C Inside Method B 等等。

使用Autofac的RegisterGeneric注入NLog

注意:更新了建议的改进,更接近但仍然不完全! 与此问题类似 – 使用Autofac传递NLog的声明类的类型 – 我试图将NLog实例注入我的存储库类。 接口: public interface ILogger where T: class { … } 执行: public class NLogger : ILogger where T: class { private readonly Logger _logger; public NLogger() { _logger = LogManager.GetLogger(typeof(T).FullName); } public void Debug(string message) { _logger.Debug(message); } … } 在Autofac注册为: builder.RegisterGeneric(typeof (NLogger)).As(typeof (ILogger)); 使用断点,我看到Autofac正在创建一堆ILogger / NLogger,其中包含所有各种存储库的正确类型,但生成的日志显示为callsite为“NLog.LoggerImpl.Write”。 谢谢你的帮助! 使用generics的工作解决方案: […]

如何使用NLog登录多个目标?

我正在使用NLog,我想同时登录RichTextBox和File。 我想以编程方式配置Logger,而不是使用xml配置文件。 以下代码仅记录到最后一个目标(在本例中为File)。 有人可以帮忙吗? RichTextBoxTarget t1 = new RichTextBoxTarget(); t1.Layout = “${date} ${message}”; t1.ControlName = “rtb_log”; t1.FormName = “MainForm”; NLog.Config.SimpleConfigurator.ConfigureForTargetLogging(t1, LogLevel.Debug); FileTarget t2 = new FileTarget(); t2.Layout = “${date} ${level} ${message}”; t2.FileName = “${basedir}/Logs/today.log”; t2.KeepFileOpen = false; t2.Encoding = “iso-8859-2”; NLog.Config.SimpleConfigurator.ConfigureForTargetLogging(t2, LogLevel.Trace); Logger logger = LogManager.GetLogger(“MyLogger”);

如何集成NLog以将日志写入Azure流日志

目前我正在使用NLog将我的应用程序错误写入文本文件。 除了写入Azure Blob存储之外,如何配置NLog将错误消息写入Azure Streaming Log? 谢谢

使用NLog作为翻转文件记录器

如何 – 如果可能 – 我可以使用NLog作为翻转文件记录器吗? 仿佛: 我希望31天内最多可以有31个文件,当新的一天开始时,如果有一个旧日志文件##。log,那么它应该被删除但是在那一天所有的日志都会被附加,至少会在那里为期27天。

为什么我的Windows服务不会写入我的日志文件?

我有一个Windows服务并使用nlog进行日志记录。 当我从visual studio ide运行时,一切正常。 日志文件更新没有问题。 当我安装该服务时,该服务运行正常,但日志文件永远不会更新。 如果有帮助,我在LOCAL SERVICE下运行。 是的,我在我的应用程序文件夹下创建了logs目录。

使用Nlog登录多个文件

我正在使用NLog进行日志记录。 我的代码如下: 我在debugLog1.txt记录数据。 现在从项目的另一个位置我也想记录数据但这个数据是另一种类型,所以我想制作一个debugLog2.txt并将数据记录到它。 如何修改上面的代码来执行此操作

Nlog – 为日志文件生成标题部分

刚刚开始尝试使用NLog,我发现我希望能够将头信息添加到日志文件的顶部,例如: 可执行文件名文件版本发布日期Windows用户ID等… 经过一些搜索后,我无法在现有的在线文档或代码论坛中找到任何表明此类function的内容。 这可能吗? 我以前总是将这种信息包含在日志文件中,并且在过去的许多事件中发现它很有用,当时在客户站点获取有关生产问题的信息。 不可否认,此function是为解决方案定制的,而不是基于任何当前的.NET日志框架。