Tag: nlog

如何在发生exception时堆叠日志消息并记录它们?

我有一个执行一堆SQL命令的业务流程。 我想在堆栈中“堆叠”这些sql命令并在发生exception时将它们写入DB,让我用一些代码解释一下 public void BusinessMethod() { Log.Initialize(); // Clear the stack try { Method1ThatExecutesSomeSQLs(); Method2ThatExecutesSomeSQLs(); Method3ThatExecutesSomeSQLs(); } catch(Expection ex) { // if some exception occured in any Method above, them i write the log, otherwise, i dont want to log anything Log.Write(); } } //Example of some Method that executes SQL’s public void Method1ThatExecutesSomeSQLs() { […]

将NLog连接并注入.Net Core控制台应用程序

我创建了一个消费者/工作,我将作为一个用C#编写的Linux进程运行。 该过程将: 阅读RabbitMQ的消息 对数据库进行更改 记录任何错误 关于.net核心的nlog上的所有文档都在aspnet核心上。 当我尝试获得ILogger实现时,它返回null。 这是除了接线和使用之外: static void ConfigureServices() { string environment = Environment.GetEnvironmentVariable(“ASPNETCORE_ENVIRONMENT”); var builder = new ConfigurationBuilder() .SetBasePath(Path.Combine(AppContext.BaseDirectory)) .AddJsonFile(“appsettings.json”, optional: true, reloadOnChange: true) .AddJsonFile($”appsettings.{environment}.json”, optional: true); var services = new ServiceCollection(); Configuration = builder.Build(); […] services.AddLogging(); ServiceProvider = services.BuildServiceProvider(); var loggerFactory = ServiceProvider.GetService(); loggerFactory.AddNLog(); } static void Main(string[] args) { ConfigureServices(); […]

NLog无法在发布模式下工作

我正在使用NLog来记录我的asp.net mvc(C#)应用程序中的exception。 NLog无法在发布模式下工作。 在调试模式下运行时也一样。 可能是什么问题? 这有什么问题吗?

如何使用NLog的DLL

我正在尝试使用Nlog Refresh 1.0为类库项目实现一个简单的日志。 似乎nlog在从dll中实例化时不会创建日志文件。 还有其他方法吗? 我的配置文件如下所示: 我知道这个配置没有任何问题,因为它可以在exe项目中运行。 编辑:只是为了澄清:我无法访问使用我的DLL作为插件的调用程序。 调用程序实际上是outlook,它使用我的dll作为插件。 我想保留一个只与我的dll相关的日志,与outlook本身无关。

更好的TypeInitializationException(innerException也为null)

介绍 当用户在NLog的配置中创建错误(如无效的XML)时,We(NLog)会抛出NLogConfigurationException 。 该例外包含描述错误的内容。 但是,如果第一次调用NLog来自静态字段/属性,有时这个NLogConfigurationException被System.TypeInitializationException “吃掉”。 例 例如,如果用户有此程序: using System; using System.Collections.Generic; using System.Linq; using NLog; namespace TypeInitializationExceptionTest { class Program { //this throws a NLogConfigurationException because of bad config. (like invalid XML) private static Logger logger = LogManager.GetCurrentClassLogger(); static void Main() { Console.WriteLine(“Press any key”); Console.ReadLine(); } } } 并且配置中存在错误,NLog抛出: throw new NLogConfigurationException(“Exception occurred […]

在RichTextBox中显示NLog跟踪

我想在应用程序执行的同时将NLog跟踪显示到RichTextBox中 logger.Trace(“This is a Trace message”); logger.Debug(“This is a Debug message”); logger.Info(“This is an Info message”); logger.Warn(“This is a Warn message”); logger.Error(“This is an Error message”); logger.Fatal(“This is a Fatal error message”); NLog是否有任何全局事件,因此可以使用它并填充RichTextBox ? 谢谢!

在数据库目标上使用NLog中的存储过程

在C#Web应用程序中使用NLog时,使用存储过程而不是SQL INSERT语句时遇到了一些问题。 连接字符串“Logger”在Web.config中正确配置,并在用SQL语句替换commandText时正常工作。 我希望得到正确方向的暗示。 在此示例中,存储过程位于“Logs”模式下,称为“LogError”。

在Visual Studio中使用NLog设置多个项目的C#解决方案

我在Visual Studio 2012中的解决方案目前包含两个项目: DLL WPF应用程序(需要DLL的方法) DLL和WPF应用程序都使用NLog进行日志记录。 目前,每个项目都包含NLog DLL本身。 这是我不明白的: 我似乎没有必要在每个项目中包含相同的NLog DLL。 但是,DLL应该可以在其他解决方案中重用,也就是说, NLog DLL必须以某种方式包含在DLL项目中。 什么是设置Visual Studio解决方案和/或项目的适当方法?

$ {basedir}位于哪里,使用NLog?

除非我完全错过它,否则我的印象是NLog文档在其示例中使用了${basedir} ,而没有解释它的位置应该是什么。 我在哪里可以找到列出所有可能选项的信息? 我定义了这个配置: 据我所知,它可以正常工作,但我还没有找到任何记录的地方。

使用NLog的Windows服务

我正在创建一个Windows服务,我想使用NLog。 我希望将日志写入服务的安装位置,如下所示: PathToInstalledService\Logs\MyLog.txt 这当然需要管理员的权益。 所以我的问题是,在为服务创建安装时,我应该在ServiceProcessInstaller上使用什么帐户。 我一直在使用LocalService,但此帐户没有所需的高程。 谢谢。