【发布时间】:2023-03-20 13:34:01
【问题描述】:
我有一个控制台项目和一个类库。 log4net 安装在我的控制台项目和类库中。
我有一个这样的布局类用于测试目的。
public class CustomLayout : LayoutSkeleton
{
public override void ActivateOptions() { }
public override void Format(TextWriter writer, LoggingEvent loggingEvent)
{
writer.WriteLine(loggingEvent.MessageObject);
}
}
当我在控制台项目中定义这个类时,它可以正常工作。但是当我在类库中定义这个类时,我得到一个错误。 log4net 没有看到这个类。
App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="log-file.txt" />
<!-- error -->
<layout type="ConsoleApp1.Core.CustomLayout" />
<!-- working properly-->
<!--<layout type="ConsoleApp1.CustomLayout" />-->
</appender>
<logger name="FileLogger">
<level value="ALL" />
<appender-ref ref="FileAppender" />
</logger>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
</configuration>
程序.cs
class Program
{
private static readonly ILog Log = LogManager.GetLogger("FileLogger");
static void Main(string[] args)
{
Log.Error("This is my error log.");
Console.ReadLine();
}
}
我将此添加到 AssemblyInfo.cs:[assembly: log4net.Config.XmlConfigurator(Watch = true)]
我得到的错误如下:
log4net:ERROR Failed to find type [ConsoleApp1.Core.CustomLayout]
System.TypeLoadException: Could not load type [ConsoleApp1.Core.CustomLayout]. Tried assembly [log4net, Version=2.0.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a] and all loaded assemblies
at log4net.Util.SystemInfo.GetTypeFromString(Assembly relativeAssembly, String typeName, Boolean throwOnError, Boolean ignoreCase)
at log4net.Util.SystemInfo.GetTypeFromString(String typeName, Boolean throwOnError, Boolean ignoreCase)
at log4net.Repository.Hierarchy.XmlHierarchyConfigurator.CreateObjectFromXml(XmlElement element, Type defaultTargetType, Type typeConstraint)
log4net:ERROR Failed to create object to set param: layout
我试过了,但没用:<layout type="ConsoleApp1.Core.CustomLayout, ConsoleApp1.Core" />
【问题讨论】:
标签: c# log4net log4net-configuration