问题标签 [nlog]

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.

0 投票
3 回答
2109 浏览

c# - 记录异常属性

是否可以使用 NLog 记录异常属性?

例如,SocketException 具有仅针对此类异常的属性,例如 ErrorCode、HResult、NativeErrorCode 等。是否可以在不显式记录(即不使用Log(e.ErrorCode))它们并仅使用代码中的 ErrorException 的情况下记录它们?默认的异常布局渲染器只是在异常上调用 ToString。

0 投票
2 回答
1763 浏览

logging - 为什么在最低级别为 Debug 时不记录 Info 级别的消息?

我在使用 Nlog 的 C# 应用程序中有以下代码。带有“调试”的消息会被记录,但“信息”不会。我假设由于 app.config 中的 minLevel 设置为“Debug”,“I​​nfo”消息也会被记录,因为 Debug 的优先级高于“Info”。但是他们没有被记录。我哪里错了?

谢谢。

这是 app.config 设置

0 投票
1 回答
4364 浏览

logging - 使用代码中的 XML 配置 log4net 或 NLog

最近我一直在做一个项目,除其他外,我们希望提供一个集中的配置系统。我们正在使用 WCF、Silverlight、C# 等来创建服务和客户端的分布式系统。我们要配置的一件事是日志记录。显然,我们可以通过 app.config 或单独的日志配置文件来配置 log4net 或 NLog。我们也可以通过代码进行配置。我想看看是否可以通过代码通过 XML 进行配置。换句话说,假设您在内存中(可能从数据库中读取?)配置任一日志框架所需的整个 XML。可以做到吗?是否可以通过包含正确格式(在特定日志框架的上下文中)的字符串来配置 log4net 和/或 NLog,而不是从文件中读取或通过“

我已经想出了如何为这些日志框架中的每一个做到这一点。我不确定我们是否会真正使用它,但我想我会在 SO 上分享它,以防其他人发现它有用。此外,您可以随意评论以这种方式配置日志框架的可取性(或不可取性)。

我能想到的两个明显的潜在问题是:

  1. 构建有效的 XML(或将其输入数据库)可能很困难。我的第一个猜测是,人们会像今天一样定义 XML。将其放入 app.config(或外部配置)文件中,然后运行测试程序以验证 XML 是否产生预期结果。

  2. 更新数据库中的 XML,然后让程序/服务/任何东西对更改做出反应(例如使用 log4net 的 ConfigureAndWatch 选项)是容易还是困难(或不可能)?我对程序或服务如何知道 XML 已更新的机制不感兴趣。让我们假设程序会定期检查数据库。给定一个新的 XML 字符串,很容易重新配置日志框架。

我将发布我的技术作为这个问题的答案。

0 投票
1 回答
1189 浏览

c# - (SEH)异常初始化Nlog

当我尝试从 Visual Studio 启动我正在处理的项目时,最后出现错误。直到几个小时前它工作得很好。经过一些小的无关更改后,它在从 Visual Studio 启动时停止工作。从资源管理器运行时它工作正常。即使是旧版本的 vom 修订控制(这部分代码完全相同并且可以正常工作)的行为方式相同,因此在我的代码中似乎不是问题。

Program.cs:line 14 的代码如下:

private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();

关于如何解决这个问题的任何想法?

System.TypeInitializationException was unhandled Message=The type initializer for ...' threw an exception. Source=... TypeName=... StackTrace: at ....Main(String[] args) at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart() InnerException: System.Runtime.InteropServices.SEHException Message=External component has thrown an exception. Source=mscorlib ErrorCode=-2147467259 StackTrace: at System.Security.Policy.PEFileEvidenceFactory.GetLocationEvidence(SafePEFileHandle peFile, SecurityZone& zone, StringHandleOnStack retUrl) at System.Security.Policy.PEFileEvidenceFactory.GenerateLocationEvidence() at System.Security.Policy.PEFileEvidenceFactory.GenerateEvidence(Type evidenceType) at System.Security.Policy.AssemblyEvidenceFactory.GenerateEvidence(Type evidenceType) at System.Security.Policy.Evidence.GenerateHostEvidence(Type type, Boolean hostCanGenerate) at System.Security.Policy.Evidence.GetHostEvidenceNoLock(Type type) at System.Security.Policy.Evidence.GetHostEvidence(Type type, Boolean markDelayEvaluatedEvidenceUsed) at System.Security.Policy.AppDomainEvidenceFactory.GenerateEvidence(Type evidenceType) at System.Security.Policy.Evidence.GenerateHostEvidence(Type type, Boolean hostCanGenerate) at System.Security.Policy.Evidence.GetHostEvidenceNoLock(Type type) at System.Security.Policy.Evidence.RawEvidenceEnumerator.MoveNext() at System.Security.Policy.Evidence.EvidenceEnumerator.MoveNext() at System.Configuration.ClientConfigPaths.GetEvidenceInfo(AppDomain appDomain, String exePath, String& typeName) at System.Configuration.ClientConfigPaths.GetTypeAndHashSuffix(AppDomain appDomain, String exePath) at System.Configuration.ClientConfigPaths..ctor(String exePath, Boolean includeUserConfig) at System.Configuration.ClientConfigPaths.GetPaths(String exePath, Boolean includeUserConfig) at System.Configuration.ClientConfigurationHost.RequireCompleteInit(IInternalConfigRecord record) at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject) at System.Configuration.BaseConfigurationRecord.GetSection(String configKey) at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String sectionName) at System.Configuration.ConfigurationManager.GetSection(String sectionName) at NLog.Config.XmlLoggingConfiguration.get_AppConfig() at NLog.LogFactory.get_Configuration() at NLog.LogFactory.GetLogger(LoggerCacheKey cacheKey) at NLog.LogFactory.GetLogger(String name) at NLog.LogManager.GetCurrentClassLogger() at ....Program..cctor() in C:\...\Program.cs:line 14 InnerException:

0 投票
1 回答
498 浏览

file - 使用 Nlog 1.0 登录到 %AllUsersProfile% 文件夹

我希望我的日志记录进入 %AllUsersProfile% 文件夹(或其子文件夹...)

我正在使用 NLog 1.0,并且网站 wiki 似乎有漏洞,因为他们正在升级他们的 2.0 版本的文档。

我正在使用 Win7 并尝试了以下操作:

0 投票
1 回答
5592 浏览

nunit - 运行 NUnit 时日志位于何处?

我正在从 Resharper 运行 NUnit 测试。我想跟踪执行过程,所以我的问题是在哪里可以找到我的应用程序生成的日志?

我使用 NLog,记录器输出路径是相对的,例如logs\mylog.txt.

0 投票
2 回答
387 浏览

asp.net - 将多个 NLog 事件与单个 ASP.NET 请求相关联

我想使用日志系统来跟踪大型 Web 应用程序。到目前为止,我已经选择了 NLog,因为它易于配置和 API。

启用跟踪后,我希望看到各种用户的大量日志记录。有没有办法将各个日志行关联到单个请求?

0 投票
1 回答
1084 浏览

mstest - NLog 不能与 MSTest 一起使用,配置应该去哪里?

我们最近将测试从 NUnit 迁移到 MSTest,我正在努力让之前通过的测试运行。从我可以推断出 MSTest 无法检测到 NLog 配置。我的 App.config 中有我的 Nlog 配置,它不会导致 NUnit 出现问题。

有人有什么想法吗?

0 投票
1 回答
6867 浏览

structuremap - NLog GetCurrentClassLogger() NullReferenceException 使用 StructureMap(完全信任)

GetCurrentClassLogger()即使我的 MVC 3 应用程序部署在IIS7 上的完全信任环境中, NLog 似乎也无法使用反射。我正在使用 StructureMap 2.6.1,问题似乎在部署之间偶尔出现。我不知道为什么,虽然我不认为是 StructureMap 造成的。

Bootstrapper班级:

Registry班级:

在我的机器上一切正常。为什么我System.NullReferenceException: Object reference not set to an instance of an object在部署时遇到错误?

0 投票
2 回答
4779 浏览

c# - NLog 配置错误?

好的,所以我正在尝试 NLog,但它一直在跌倒。让我来看看我到目前为止所拥有的。

我的 NLog.config 文件:

然后我像这样创建我的对象:

然后当我想记录一些事情时,我会这样做:

但我收到以下错误:

有任何想法吗?

编辑

可能应该在前面提到这一点,但这是一个命令行应用程序。GetBlogFeeds 是类的名称。

编辑2

好吧,我一直是个彻头彻尾的白痴。在实例化记录器类之前,我正在调用该UserDetails()方法(它尝试使用 NLog 方法) 。我要给你们两个投票。谢谢和抱歉。