问题标签 [nlog-configuration]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sharepoint - 使用 NLog 集中日志记录的最佳方法是什么?
我被分配了一个项目,其中包含许多基于 SharePoint 的编写不佳的代码。
它由大约 15 个子项目组成,其中一些是 Windows 服务,一些是 Web 服务,一些是在 SharePoint 内部运行的 Web 应用程序,一些是 Webpart 甚至是控制台应用程序。它们都在同一台服务器上运行并相互调用。
生产中已经存在许多问题,但很难追查。
从他孜孜不倦地捕捉所有例外情况来看,最初的开发者一定是塞林格或神奇宝贝系列的粉丝。不幸的是,他们都没有得到报告或记录。
我当前的任务是将日志记录引入整个项目,这样我就可以找到现在不可见的异常,跟踪纠结的重复调用并至少有一些堆栈跟踪。我决定使用NLog,因为它既活跃又酷,与log4net相反,它非常好,但有点不合我的口味。
因为组件是紧密耦合的,所以我想将日志集中在一个文件中,这样相关的错误就不会分散在硬盘上。因此,我希望有两个或三个不同的日志文件,其中有五个或更多项目或多或少地同时写入每个项目。
配置 NLog 以集中日志记录的最佳方法是什么?我应该为每个项目都有一个配置文件,还是应该相关项目共享它们?我应该将配置文件放在哪里以从 SharePoint Webpart 进行日志记录?我会面临任何许可问题吗?
我正在使用 SharePoint 2007。
c# - 如何对 NLog 中的同一个目标应用不同的布局?
NLog 允许我将SplitGroup
消息记录到多个目标。我想使用此功能将每条消息一次记录到一个常见的、特定于用户和特定日期的日志中:
这很好,但我也想为不同的严重程度使用不同的布局。例如,errorLayout
将包括异常信息和插入[!]
标记,以便我以后可以在BareTail等日志查看器中突出显示错误:
这段代码假设Error
s 总是带有异常,而Warning
s 没有,但这不是重点。
问题是这个配置是错误的。它不起作用,因为logger
没有layout
属性。它target
仅用于定义。
正在使用的布局必须由目标本身声明,但我认为没有办法为不同的严重级别指定不同的布局。
现在,我不得不复制粘贴相同的配置代码四次,以便layout
为同一组文件提供四个不同的 s:
这只是伤害我的眼睛。
有没有更好的方法来做到这一点并避免重复?
asp.net - NLogConfigurationException - 从“System.String”到“System.Uri”的无效转换
既然我已经从 1.0 -> 2.0 更新,Nlog 正在抛出异常。
当调用 NLog.Config.XmlLoggingConfiguration.Initialize 时,会发生以下异常:
“在 WebService Target[Target_AuditLog_WebService_Global] 上设置属性 'Url' 时出错”
,innerException 为:
“从 'System.String' 到 'System.Uri' 的无效转换.
目标看起来像这样:
我发现了这一点,但他们似乎认为它是固定的:http: //nlog.codeplex.com/workitem/5352
nlog - nLog 条件布局
我正在使用 nLog 2.0,在阅读完这篇有趣的文章后,我尝试将条件应用于简单的布局,如下所示:
这些不仅没有任何效果,而且它们也不会引发错误,因此条件似乎在某处被无声地吞噬(throwExceptions
设置为 true)
- 如何有条件的布局工作?他们甚至工作吗
- 如果出现错误/无法识别,nLog 可以抛出异常吗?
这是完整的代码,这是一个基本的控制台应用程序。
主文件:
NLog.config(在可执行目录中):
输出:
nlog - 为什么 NLog 配置更改不生效?
我试图通过以下方式更改 NLog 的配置:
但它默默地忽略了我的更改。但是,当我尝试
它立即工作 - 但丢弃了所有以前的配置。为什么会这样,我该如何解决?
c# - 使 NLog.config 文件从 (d:\dev) 而不是 "\bin\debug\" 加载文件
我使用 Nlog 在特定的 DLL 中进行日志记录。然后在另一个应用程序中使用 DLL(使用 动态加载System.Reflection.Assembly.LoadFrom(path + a.dll)
)。我手动将 Nlog.dll 和 Nlog.config 文件放在 Path 文件夹中,应用程序可以正常执行,但它没有记录任何消息。
但是,当我继续将 Nlog.config 文件手动放置在应用程序目录 ( \bin\debug\
) 中时,会记录消息。
有人可以让我知道如何将 Nlog.Config 的搜索位置指向d:\dev
除\bin\debug\
.
c# - 使用 NLog 事件上下文布局渲染器以毫秒精度记录日期时间
我正在尝试使用 NLog 2 将一些审计信息记录到 SQL Server 2008 表中。为了能够将参数传递给 SQL 插入查询,我正在使用 LogEventInfo 和Event Context Layout Renderer。
日志记录本身有效,但日期时间仅以秒精度存储。我希望能够以毫秒精度进行存储,但没有找到任何可以告诉我如何做到这一点的东西。
这是我记录事件的 C# 代码:
这是我在 NLog.config 配置中的目标:
我发现有一个解决方法,theEvent.Properties["RequestDate"] = requestDateTime.ToString("yyyy-MM-dd HH:mm:ss.fff")
但我不想这样做,因为那样你可能会遇到日期时间格式和文化问题。
有谁知道我可以使用 NLog.config 中的配置更改精度的方法?
.net - 有没有办法将 NLog.config 信息放入我的 app.config 文件中?
有没有办法将 NLog.config 信息放入我的 app.config 文件中?这样我就可以拥有一个配置文件而不是两个。它可能看起来像这样:
请让我知道这是否是重复的。
c# - 如果找不到目标则忽略
我有一个通过 nlog.config 文件配置的 nlog 记录器。我在配置文件中定义了多个目标。如果 nlog 未能找到任何目标(例如由于网络错误导致的数据库),它是否有可能忽略该特定目标并写入所有其他目标。
目前,如果它没有找到任何目标,它只会抛出异常并中断程序。有没有办法可以检查启动,是否找到所有目标并采取相应措施。
如果找不到,还有什么方法可以动态创建 .config 文件?最后一个解决方案是手动编写一个XmlWriter
类,但想知道 nlog 是否有默认值。
exception - NLog LogEventInfo 记录异常
我正在使用 LogEventInfo 将日志记录到日志文件和数据库条目。当异常被抛出到日志文件时,我还想记录堆栈跟踪。我以为我只需要将 LogEventInfo 中的 Exception 属性设置为我要记录的异常,但它不起作用,日志文件只包含“错误我的消息”。我哪里做错了?谢谢。
NLog.config 就像
和 C# 代码