问题标签 [common.logging]
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# - Common.Logging.NLog32 无法使用 NLog 3.2.1.0?只在客户端?
我目前正在建立一个客户端服务器项目。我的服务器部分是一个 C# WebAPI 项目(net45)。我的客户端部分是一个 C# WPF 项目(net45)。
对于日志记录,我想将 Common.Logging 与 Common.Logging.NLog32 适配器一起使用。
起初我在服务器部分配置它,它就像一个魅力。我继续为 WPF 应用程序配置它,但在调用时它一直失败:
或者
异常告诉我它无法创建Common.Logging.NLog.NLogLoggerFactoryAdapter
. 内部异常表明它在 3.2.0.0 版本中找不到带有 5120e14c03d0593c 的 PublicKeyToken 的 NLog 程序集。
在这两种情况下,服务器和客户端,我都安装了相同的 nuget 包。虽然服务器部分使用 NLog 3.2.1.0 程序集(与 Common.Logging.NLog32 一起出现)没有问题,但客户端仍然无法加载它。
任何想法为什么行为不同以及如何在不手动加载确切的 NLog 版本的情况下解决这个问题?
asp.net-mvc - 如何启用 Common.Logging.Log4Net
我正在尝试启用 Common.Logging.Log4Net 将所有类型的日志写入日志文件。这些教程使它看起来很简单,但我不知道我做错了什么。这些是我正在采取的步骤:
- 创建一个新的 ASP.NET MVC 空项目
- 安装“通用日志记录 Log4Net 1211”NuGet 包
将以下行添加到默认 web.config:
确保应用程序。池身份帐户对我尝试保存日志文件的路径具有 RW 访问权限。
出于测试目的从代码中抛出一个随机异常。
我错过了什么吗?有没有办法调试 log4net?请帮助这个可怜的灵魂。谢谢你。
log4net - 以编程方式配置 Log4NetLoggerFactoryAdapter(再试一次)
这个问题在这里被问到,但是解决方案不是程序化配置。在这种情况下,库Wrapper.dll
已正确配置为Common.Logging
. 控制台应用程序ConsoleApplication1.exe
尝试实现Log4NetLoggerFactoryAdapter
.
这工作正常Wrapper.dll
,从控制台发送日志条目。
app.config
:_
内的代码ConsoleApplication1
:
这不起作用。它不会将日志条目发送Wrapper.dll
到控制台。app.config
:_
内的代码ConsoleApplication1
:
使用编程解决方案,我可以从适配器或从成功使用GetLogger
,ConsoleApplication1
但log4net
我无法从“包装器”库中使用的记录器中传播日志事件。
请注意,在工作正常的情况下,我已允许 xml 并评论了编程调用。在不起作用我已经注释了相关的 xml 并实现了编程代码。另请注意,这是一个简单的示例。真正的应用程序正在尝试使用Common.Logging
从 Matlab 实现的 .NET 库。
ninject - Quartz.Net,使用 Log4Net 和 Common.Logging 进行日志记录会引发“未知日志级别”
我有一个 Azure 云服务,它使用 Quartz.Net (2.3.2) 来运行计划任务。我的主要日志引擎是 Log4Net (2.0.3) ,我正在使用 Common.Logging.Log4Net1213 (3.0.0) 来连接 Common.Logging 和 Log4Net。我正在使用我自己的“NinjectJobFactory”来创建所有作业及其依赖项(它实现了 IJobFactory)。我的计划启动代码如下所示:
一切都非常适合正常的日常日志记录(Quartz 启动和关闭、NServiceBus 启动、任务启动、作业内的异常处理等)。我遇到的问题是,上面的任何行中都有一个致命的异常,它会阻止 Quartz 启动。(通常,这是因为我未能正确包含或配置其中一项工作所需的依赖项)。在这些情况下,我没有记录真正的问题,而是在 Log4NetLogger.cs 中得到一个异常,抱怨未知的日志记录级别,并且永远不会出现或记录底层异常。我必须中断捕获的异常才能看到底层异常。任何人都可以建议修复吗?提前致谢!
堆栈跟踪如下所示:
Microsoft.WindowsAzure.ServiceRuntime 严重:1:未处理的异常:System.ArgumentOutOfRangeException:未知的日志级别参数名称:logLevel 实际值为错误。在 Common.Logging.Log4Net.Log4NetLogger.GetLevel(LogLevel logLevel) 在 c:_oss\common-logging\src\Common.Logging.Log4Net129\Logging\Log4Net\Log4NetLogger.cs:Common.Logging.Log4Net.Log4NetLogger 的第 180 行。 WriteInternal(LogLevel logLevel, Object message, Exception exception) in c:_oss\common-logging\src\Common.Logging.Log4Net129\Logging\Log4Net\Log4NetLogger.cs:Common.Logging.Factory.AbstractLogger.Error(Object) 的第 140 行消息,异常异常)在 c:_oss\common-logging\src\Common.Logging.Portable\Logging\Factory\AbstractLogger.cs:c 中 Quartz.Simpl.SimpleThreadPool.WorkerThread.Run() 的第 806 行:
我在 app.config 中的 common.logging 配置是:
最后,我的 log4net.config 是:
azure - Log4Net + Common.Logging + Azure = 空日志文件
我有一个 Azure 工作者角色,我希望更新日志记录(该项目有现有的日志记录,尽管我不相信它曾经工作过)。它设置为使用 Common.Logging,但使用 Log4Net。我在 Log4Net 中设置了 2 个附加程序——一个用于 ElasticSearch,一个用于滚动文件——它们都没有记录任何输出。
在worker角色的app.config中,我配置了log4net,后面是Common.Logging:
我倾向于认为配置中有问题。但是,RollingFile appender 确实创建了 c:\tmp\log4net_rollingfile.log,所以我无法解释为什么实际上什么都没有写入文件。此外,没有数据发送到 ElasticSearch。
使用“log4net.Internal.Debug”打开 Log4Net 诊断程序后,我可以看到附加程序正在加载:
c# - 常见的日志记录问题
我正在处理 WPF 项目的项目,它在尝试解析 Main xml 文件时给我的错误是:
无法加载程序集或文件“Common.Logging”。
我从 NuGet 安装了对 Common.Logging 的引用,但是对于 3.4 版而不是 2.0.0 版的错误版本。普通日志记录不向后兼容吗?
c# - 无法加载文件或程序集“Common.Logging,版本 = 3.0.0.0”
我试图在我的项目中使用 log4net,所以我配置了 log4net,创建了一个 appender 并创建了 ILog 对象,甚至尝试写入 eventviewer 并且它有效,这是 ILog 的定义。但是当我试图将日志传递给另一个类时,我得到了这个异常:
无法加载文件或程序集“Common.Logging,版本 = 3.0.0.0。文化=中性...
c# - Quartz.net - 无法加载文件或程序集 Common.Logging Version=3.0.0.0
我在我的项目中使用 Quartz.net,突然我得到了这个异常:
无法加载文件或程序集 'Common.Logging,版本 = 3.0.0.0...
我不知道它为什么会弹出,一切都很好,石英工作,突然它没有。为什么?
c# - 如果 Common.Logging 正在使用,NLog 的变量可以通过编程方式修改吗?
我有一个 NLog 变量,我想在运行时在 C# 中设置它的值:
但那是 NLog 代码。我正在考虑使用 Common.Logging 而不是直接使用 NLog。我看不到如何通过 Common.Logging 做这种事情。有办法吗?
或者,也许有办法在运行时从 NLog 配置文件本身中做到这一点?所以 Common.Logging 可以回避?例如,类似:
最好在第一次使用时调用该函数一次,而不是每次引用变量时都调用该函数?
c# - Common.Logging 中 NLog 的 ConditionalDebug?
NLog 有两种不同类型的“记录调试消息”调用:Debug() 和 ConditionalDebug()(类似 Trace() 和 ConditionalTrace())。不同之处在于,对于发布版本,“条件”调用甚至不会发送到已编译的 exe/dll/whatever 中。
我在 Common.Logging 中看不到对此功能的支持。我错过了它,还是不支持?如果不支持,是否还有其他支持它的好的日志抽象层?提前致谢。