gpt4 book ai didi

c# - 如何为类库包含 log4net?

转载 作者:可可西里 更新时间:2023-11-01 08:43:53 27 4
gpt4 key购买 nike

我想将日志记录功能实现到一个类库中,该类库本身在 Web 服务中被引用。我尝试添加 app.config 并完成所需的一切,但似乎在抛出异常时,log4net 什么都不做。

我的应用程序配置

<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="D:\\mylogfile.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<filter type="log4net.Filter.StringMatchFilter">
<stringToMatch value="test" />
</filter>
<filter type="log4net.Filter.StringMatchFilter">
<stringToMatch value="error" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline%exception" />
</layout>
</appender>
<root>
<level value="INFO"/>
<appender-ref ref="RollingFileAppender"/>
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>

在 AssemblyInfo.cs 中:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "app.config")]

在 LogManager.cs 中:

private static readonly ILog Log = log4net.LogManager.GetLogger
(MethodBase.GetCurrentMethod().DeclaringType);
public static void WriteLog(Exception ex)
{
Log.Error(ex);
}

你能告诉我哪里出了问题吗?如何让 log4net 为我的类库工作?

谢谢

最佳答案

在运行时,除非明确声明,否则始终从主机应用程序使用配置文件。以防万一,使用的是 web.config 而不是 app.cofig。而是提及其他一些自定义配置文件名,并确保该文件被复制到 Web 服务的虚拟目录中。也正如 chibacity 所说,确保对日志文件的权限。最好将其保存在 Web 服务主机的 app_data 文件夹中。

关于c# - 如何为类库包含 log4net?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4612817/

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