问题标签 [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# - NLog 使用 NLog.config 动态更改文件名
如何使用 C# 中的变量动态更改 FileName?我的想法是创建一个日志文件,如Log_<UserId_From_DB>_${date:format=yyyy-MM-dd}.log
. 有任何想法吗?
log4net - 记录到多个文件夹
我有一个接受 Web 请求以触发长时间运行的异步任务的 Windows 服务。我希望每个任务都将日志输出到不同的目录(其名称由请求 ID 和触发作业的用户确定)。在每个目录中,我有多个日志文件。
我正在使用 Common.Logging 和 log4net。但是,我必须重置 log4net 配置才能更改目录(如下所示),如果在另一个任务仍在运行时触发任务,这将无法正常工作。两个任务的日志都将更改为最新创建的目录。
有没有办法只为特定的记录器设置日志?或者我可以以某种方式避免 Reset() 吗?此外,这段特定的代码是我唯一提到 log4net 的地方。因此,如果我可以为每个日志集创建多个文件夹,我可以迁移到 NLog。
编辑:我在 NLog 中找到了这个功能 - https://github.com/NLog/NLog/wiki/Configure-component-logging
但它看起来不像 Common.Logging 支持它。
c# - NLog 为每个线程单独的内存记录器
我正在使用 NLog 和 Common Logging 请找到我的完整代码片段
我也提到了当前输出和预期输出,我希望每个线程都有单独的内存记录器,它们不应该相互交互。
配置
使用配置的代码片段:
随机数
- 960258078
- 879841817
- 1123570211
电流输出
- 1 960258078 960258078
- 0 1123570211 960258078
- 1 879841817 960258078
- 2 960258078 960258078
- 1 1123570211 960258078
- 2 879841817 960258078
- 3 960258078 960258078
- 2 1123570211 960258078
- 3 879841817 960258078
- 4 960258078 960258078
- 3 1123570211 960258078
- 4 879841817 960258078
- 4 1123570211 1123570211
预期产出
- 0 960258078 960258078
- 1 960258078 960258078
- 2 960258078 960258078
- 3 960258078 960258078
- 4 960258078 960258078
- 0 879841817 879841817
- 1 879841817 879841817
- 2 879841817 879841817
- 3 879841817 879841817
- 4 879841817 879841817
- 0 1123570211 1123570211
- 1 1123570211 1123570211
- 2 1123570211 1123570211
- 3 1123570211 1123570211
- 4 1123570211 1123570211
以编程方式使用代码片段
随机数
- 903471573
- 560466050
- 898036495
程序输出
- 0 560466050 560466050
- 1 560466050 560466050
- 0 898036495 560466050
- 0 903471573 560466050
- 1 898036495 560466050
- 1 903471573 560466050
- 2 560466050 560466050
- 2 903471573 560466050
- 3 560466050 560466050
- 2 898036495 560466050
- 3 903471573 560466050
- 3 898036495 560466050
- 4 560466050 560466050
- 4 903471573 560466050
- 0 560466050 903471573
- 1 560466050 903471573
- 0 898036495 903471573
- 0 903471573 903471573
- 1 898036495 903471573
- 1 903471573 903471573
- 2 560466050 903471573
- 2 903471573 903471573
- 3 560466050 903471573
- 2 898036495 903471573
- 3 903471573 903471573
- 3 898036495 903471573
- 4 560466050 903471573
- 4 903471573 903471573
- 0 560466050 898036495
- 1 560466050 898036495
- 0 898036495 898036495
- 0 903471573 898036495
- 1 898036495 898036495
- 1 903471573 898036495
- 2 560466050 898036495
- 2 903471573 898036495
- 3 560466050 898036495
- 2 898036495 898036495
- 3 903471573 898036495
- 3 898036495 898036495
- 4 560466050 898036495
- 4 903471573 898036495
- 4 898036495 898036495
日志被写入所有 memoryTargets,而不是只有一个
c# - Common.Logging.dll 中的异常:无法从配置部分“common/logging”获取 Common.Logging 的配置
在您想知道之前,我已经阅读了 类似主题 并尝试在 app.config 中的工厂适配器标签中重命名“Common.Logging.Log4Net”,但这对我没有帮助。我还尝试注释掉启动标签和运行时标签。
所以我下载了 Common.Logging.LogNet1213.3.3.1 NuGet 包。现在在我的项目中有包
- Common.Logging.3.3.1
- Common.Logging.Core.3.3.1
- Common.LoggingLog4Net1213.3.3.1
- log4net.2.0.5
根据文档,我填写了我的 app.config,现在看起来像这样:
我用于尝试 Common.Logging 的 C# 控制台应用程序如下所示:
异常出现在 ILog 日志的初始化行中,这是消息:
Common.Logging.dll 中出现“Common.Logging.ConfigurationException”类型的未处理异常
附加信息:无法从配置部分“common/logging”获取 Common.Logging 的配置。
c# - 在 Common.Logging AbstractLogger 派生中未调用 WriteInternal
我试图让 Common.Logging 调用我的自定义记录器,但从未调用 WriteInternal。我错过了某个地方的配置吗?在我的 ASP.NET Owin 项目中,Startup.cs 有
其中 ILogger 是我的自定义记录器。HubLoggerAdapter 看起来像
记录器看起来像
如果我调用 var logger = LogManager.GetLogger(); logger.Warn("我还活着。");
我看到“启动 HubLogger”,但我的消息永远不会调用 WriteInternal。这真的很奇怪。任何见解都非常感谢。
编辑 1.尝试根据建议添加带有 NameValueCollection 的构造函数,但它不起作用。特别添加
// _logger = props["logger"]; }
并使用
不知道为什么构造函数会有所作为。
common.logging - 无法加载文件或程序集 Common.Logging
我编写了类库来支持使用 NLog 和 log4net 和 Common.Logging 编写日志。当我用项目进行测试时,我得到了错误Could not load file or assembly 'Common.Logging, Version=3.3.1.0, Culture=neutral, PublicKeyToken=af08829b84f0328e' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
刷新日志:
请帮我解决这个问题
xml - 使用 Common.Logging.Log4Net.Universal 以 xml 格式写入日志以供 YALV 解析的问题
我正在使用 Common.Logging.Log4Net.Universal 以 xml 格式编写日志,以便我可以使用 YALV 读取它!但是,我看不到为此生成的日志。我已经将这种技术用于普通的 log4net 库并且可以正常工作。这是我的“web.config”文件中的相关配置:
这是我的“log4net.config”文件:
下面是实际生成日志的代码:
执行后,代码执行没有任何错误,但是上面提到的“mylogfile.xml”永远不会生成。
请建议,以防有人尝试过同样的方法。
asp.net-core-mvc - Common.Logging.NLog 不适用于网络核心?
我目前在 netcoreapp1.1 上使用 Common.Logging 版本 3.4.0-beta2 和 NLog 5.0.0-beta07。(它和 ASP Net Core mvc 项目)我找不到针对这种情况的 Common.Logging.NLog 特定版本。
如果它还不可用,我有哪个日志文件选项作为网络核心的适配器?
asp.net - Common.Logging 的 ASP.NET Core 依赖注入
我希望能够配置 ASP.NET 的依赖注入框架,以便能够为我解析Common.Logging 的 ILog接口的实例。创建 ILog 实例是通过Common.Logging 的静态 LogManager .GetLogger 方法完成的,这些方法需要一个类型作为参数。
这意味着在解析 ILog 实例时,我需要知道 DI 引擎尝试注入的目标类型。过去,我使用 autofac 模块来解决其他人在这里提出的问题,但如果能够纯粹使用ASP.NET 内置的 Ioc来解决这个问题,那就太好了。
我可以看到可以通过创建一个采用 IServiceProvider 的方法来解析实例,但是我看不到注入的类型的上下文。
有谁知道如何在运行时通过了解服务注入的类型来解决服务?
.net - 为什么 NuGet 中的 Common.Logging 使用 .NET Portable?
我在用:
- 单声道开发 7.1
- .NET 框架 4.6.2
- Mono 5.0.1.1 (2017-02/5077205 Thu May 25 09:16:53 UTC 2017)(64 位)
- 没有 PCL 或配置文件(据我所知)
- msbuild 15.2.0.0(2017 年 5 月 11 日星期四 17:28:41 UTC)
<NoStdLib>
未指定;也就是说,它保留为默认值。
<TargetFrameworkVersion>
设置为 v4.6.2。
当我在 IDE 中构建时,我看不到任何警告或错误。但是,当我构建解决方案时
我看到其中一些消息:
浏览 Mono 文件,以下所有程序集都与上述版本和密钥匹配:
其他mscorlib
程序集要么具有错误的版本,要么具有密钥令牌b77a5c561934e089
而不是7cec85d7bea7798e
.
我的问题是:
- 为什么我的解决方案试图引用可移植的 .NET?
- 是否有一个程序集引用树工具可以用来找出引用的罪魁祸首是什么?
- 为什么这是一个非致命错误,甚至根本没有出现在 IDE 构建输出中?
- 我应该手动引用这些程序集之一吗?如果是这样,哪个配置文件?
- 如果我不参考这些程序集之一,会有什么后果?
- 我的所有程序集都是强名称签名的这一事实是否会影响解决此错误的重要性?
提前致谢。
编辑:
使用monodis --assemblyref
,我发现问题是Common.Logging
:
尽管我packages.config
特别要求 .NET 4.62:
所以我想这是一个错误Common.Logging
?