问题标签 [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.
c# - 记录异常属性
是否可以使用 NLog 记录异常属性?
例如,SocketException 具有仅针对此类异常的属性,例如 ErrorCode、HResult、NativeErrorCode 等。是否可以在不显式记录(即不使用Log(e.ErrorCode)
)它们并仅使用代码中的 ErrorException 的情况下记录它们?默认的异常布局渲染器只是在异常上调用 ToString。
logging - 为什么在最低级别为 Debug 时不记录 Info 级别的消息?
我在使用 Nlog 的 C# 应用程序中有以下代码。带有“调试”的消息会被记录,但“信息”不会。我假设由于 app.config 中的 minLevel 设置为“Debug”,“Info”消息也会被记录,因为 Debug 的优先级高于“Info”。但是他们没有被记录。我哪里错了?
谢谢。
这是 app.config 设置
logging - 使用代码中的 XML 配置 log4net 或 NLog
最近我一直在做一个项目,除其他外,我们希望提供一个集中的配置系统。我们正在使用 WCF、Silverlight、C# 等来创建服务和客户端的分布式系统。我们要配置的一件事是日志记录。显然,我们可以通过 app.config 或单独的日志配置文件来配置 log4net 或 NLog。我们也可以通过代码进行配置。我想看看是否可以通过代码通过 XML 进行配置。换句话说,假设您在内存中(可能从数据库中读取?)配置任一日志框架所需的整个 XML。可以做到吗?是否可以通过包含正确格式(在特定日志框架的上下文中)的字符串来配置 log4net 和/或 NLog,而不是从文件中读取或通过“
我已经想出了如何为这些日志框架中的每一个做到这一点。我不确定我们是否会真正使用它,但我想我会在 SO 上分享它,以防其他人发现它有用。此外,您可以随意评论以这种方式配置日志框架的可取性(或不可取性)。
我能想到的两个明显的潜在问题是:
构建有效的 XML(或将其输入数据库)可能很困难。我的第一个猜测是,人们会像今天一样定义 XML。将其放入 app.config(或外部配置)文件中,然后运行测试程序以验证 XML 是否产生预期结果。
更新数据库中的 XML,然后让程序/服务/任何东西对更改做出反应(例如使用 log4net 的 ConfigureAndWatch 选项)是容易还是困难(或不可能)?我对程序或服务如何知道 XML 已更新的机制不感兴趣。让我们假设程序会定期检查数据库。给定一个新的 XML 字符串,很容易重新配置日志框架。
我将发布我的技术作为这个问题的答案。
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:
file - 使用 Nlog 1.0 登录到 %AllUsersProfile% 文件夹
我希望我的日志记录进入 %AllUsersProfile% 文件夹(或其子文件夹...)
我正在使用 NLog 1.0,并且网站 wiki 似乎有漏洞,因为他们正在升级他们的 2.0 版本的文档。
我正在使用 Win7 并尝试了以下操作:
nunit - 运行 NUnit 时日志位于何处?
我正在从 Resharper 运行 NUnit 测试。我想跟踪执行过程,所以我的问题是在哪里可以找到我的应用程序生成的日志?
我使用 NLog,记录器输出路径是相对的,例如logs\mylog.txt
.
asp.net - 将多个 NLog 事件与单个 ASP.NET 请求相关联
我想使用日志系统来跟踪大型 Web 应用程序。到目前为止,我已经选择了 NLog,因为它易于配置和 API。
启用跟踪后,我希望看到各种用户的大量日志记录。有没有办法将各个日志行关联到单个请求?
mstest - NLog 不能与 MSTest 一起使用,配置应该去哪里?
我们最近将测试从 NUnit 迁移到 MSTest,我正在努力让之前通过的测试运行。从我可以推断出 MSTest 无法检测到 NLog 配置。我的 App.config 中有我的 Nlog 配置,它不会导致 NUnit 出现问题。
有人有什么想法吗?
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
在部署时遇到错误?
c# - NLog 配置错误?
好的,所以我正在尝试 NLog,但它一直在跌倒。让我来看看我到目前为止所拥有的。
我的 NLog.config 文件:
然后我像这样创建我的对象:
然后当我想记录一些事情时,我会这样做:
但我收到以下错误:
有任何想法吗?
编辑
可能应该在前面提到这一点,但这是一个命令行应用程序。GetBlogFeeds 是类的名称。
编辑2
好吧,我一直是个彻头彻尾的白痴。在实例化记录器类之前,我正在调用该UserDetails()
方法(它尝试使用 NLog 方法) 。我要给你们两个投票。谢谢和抱歉。