gpt4 book ai didi

c# - Log4Net:来自引用 DLL 的自定义附加程序被忽略

转载 作者:太空宇宙 更新时间:2023-11-03 23:21:46 28 4
gpt4 key购买 nike

我从 AppenderSkeleton 的子类中创建了一个非常简单的 appender。我把它放到一个额外的库中并引用了它。在我使用它的程序中,我的 app.config 的相关部分是:

  <configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="${LOCALAPPDATA}\MyProgram\MyLog.txt" />
<appendToFile value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline%exception" />
</layout>
<threshold value="Debug" />
</appender>
<appender name="MySimpleAppender" type="Some.Namespace.SimpleAppender" >
<threshold value="Info" />
</appender>
<root>
<appender-ref ref="FileAppender" />
<appender-ref ref="MySimpleAppender" />
</root>
</log4net>

配置器在 Program.cs 中设置如下:

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

当我现在记录一些东西时,例如:

LOG.Info("foo");

消息被写入文件(使用 FileAppender),但是我的 SimpleAppender 被忽略了。当我显式创建一个 nullary 构造函数并为其设置断点时,我发现它甚至没有被实例化。当我将类文件直接复制到我的程序所在的项目中时,它就可以工作了。

我错过了什么?

最佳答案

您需要将程序集名称添加到类型标签中。现在它正在寻找 Log4Net 程序集。

它采用的格式

type="Namespace,AssemblyName"

非常喜欢

 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>

你需要

<appender name="MySimpleAppender" type="Some.Namespace.SimpleAppender,MyAssembly" >

关于c# - Log4Net:来自引用 DLL 的自定义附加程序被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35159652/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com