c# - 无法从类库中获取 Log4net
问题描述
我有一个执行安装所需的例程的类库。从我所研究的一切来看,我相信我的设置是正确的。但是,该例程绝对不会记录任何内容。这是我所拥有的:
我已添加类库项目作为对宿主项目的引用。
在我的类库中,我有以下内容:
private static readonly ILog Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public InstallDLL() { Log.Error("Where are you goinng?"); }
在宿主应用程序中,我在 AssemblyInfo.cs 类中添加了以下行:
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
最后,这是我的 app.config 文件的内容:
<configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/> </configSections> <log4net> <appender name="TestAppender" type="log4net.Appender.RollingFileAppender" > <file value=".\Log Directory\MyTestAppender.log" /> <encoding value="utf-8" /> <appendToFile value="true" /> <rollingStyle value="Date" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="5" /> <maximumFileSize value="2MB" /> <staticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%M %C] - %message%newline" /> </layout> </appender> <root> <level value="ALL" /> <!-- If the following line is not included the log file will not be created even if log4net is configured with this file. --> <appender-ref ref="TestAppender" /> </root> </log4net> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /> </startup> </configuration>
我必须错过一些东西,但是什么?请记住,主机应用程序的日志记录工作正常......
**** 编辑 ********************************************* ***********************
我想我可能知道这里发生了什么。此项目生成的 .dll 文件在宿主项目运行之前运行,因为它是安装脚本的一部分。我认为宿主项目必须先运行才能初始化 log4net 配置。当我从主机应用程序而不是从安装程序包中调用 .dll 文件中的方法时,log4net 日志记录工作得很好。有谁知道这是否是根本原因,我该如何解决?
解决方案
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />, Can you check your Target Framework in Assembly properties?
我只是与我的配置文件比较,我有这个<log4net debug="true">
. 你能添加这个吗?
推荐阅读
- java - Ant get 任务无法从 https 端点下载
- c++builder - 如何使用 Windows 鼠标挂钩 API 函数在 C++ Builder 应用程序中挂钩鼠标事件?
- ios - 如何在目标c中记录电话
- java - 如何使用 JInternalFrame 标题栏更改颜色?
- javascript - 我将如何编写一个递归函数来对使用尾调用优化 (TCO) 的数字数组求和?
- angular - 有没有办法使组件(而不是元素)以角度拖动?
- php - PHP 容器未在 docker 中启动
- xcode - 如何在 Xcode10.2 中运行命令行工具项目
- python - 如何向我的数组添加新的复杂值?
- python - 列表中的随机选择