【发布时间】:2020-03-28 19:08:18
【问题描述】:
我有一个 .net dll 配置为在 IIS 下运行的 Web 服务。我添加了 log4Net 日志记录并在 Assembylnfo 下进行了以下设置
[程序集:log4net.Config.XmlConfigurator(ConfigFile = "bin\log4net.config", Watch = true)]
之后,我使用 web.config 中的以下内容启用了 log4net 诊断
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add
name="textWriterTraceListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="E:\MyLocation\log4net.txt" />
</listeners>
</trace>
</system.diagnostics>
<system.serviceModel>
使用以下部分创建记录器实例。
private static readonly log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
现在我在 log4net.txt 中获得了以下条目以及许多诊断信息,这些信息显示初始化是否正常并且能够打开日志文件
log4net:使用文件配置存储库 [MYRepository] [E:\MyLocation\bin\log4net.config] 监视文件更新
log4net:打开文件以写入 [...]
此时我能够正确获取日志。现在在上面的初始化日志之后,我得到下面的行到底部
log4net: configuring repository [MYRepository] using .config file section
log4net: Application config file is [E:\MyLocation\web.config]
log4net:ERROR Failed to find configuration section 'log4net' in the application's .config file. Check your .config file for the <log4net> and <configSections> elements. The configuration section should look like: <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
如果初始化成功,如日志顶部所示,为什么 log4net 会尝试在 web.config 中再次检查 web.config 的配置?
【问题讨论】:
-
您是否在
app.config中启用了<add key="log4net.Internal.Debug" value="true"/>?实际上,您正在尝试做不同的事情,[assembly: log4net.Config.XmlConfigurator(ConfigFile = "bin\log4net.config", Watch = true)]这里您正在为您的应用程序配置日志,system.diagnostics启用 log4net 内部调试以监控 log4net 本身的问题 -
@asb 试试下面的答案,谢谢