我需要log4net来生成CSV文件并且已发现this article that implements one。我的问题是如何将该代码集成到我的Web项目中。直接复制粘贴使ReSharper坚持要求命名空间从 CsvLogging '到' MyApp.Web '现在,web项目的程序集现在有了一个名为' CsvLogging '。
的类。但log4net不满意并抛出下面粘贴的错误。
我的appender配置如下:
<layout type=" MyApp.Web.CsvLogging.CsvPatternLayout, MyApp.Web.CsvLogging">
...在我阅读this article on how to reference a custom pattern时,应该是正确的。
log4net:ERROR Failed to find type [ MyApp.Web.CsvLogging.CsvPatternLayout, MyApp.Web.CsvLogging]
System.IO.FileNotFoundException: Could not load file or assembly 'MyApp.Web.CsvLogging' or one of its dependencies. The system cannot find the file specified.
File name: 'MyApp.Web.CsvLogging'
at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName, ObjectHandleOnStack type)
at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName)
at System.RuntimeType.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark)
at System.Type.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase)
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)
答案 0 :(得分:1)
您有一个名为MyApp.Web.CsvLogging
的类,但您的程序集仍被命名为MyApp.Web
请尝试以下方法:
<layout type=" MyApp.Web.CsvLogging.CsvPatternLayout, MyApp.Web">
程序集的基本.net命名是"namespace.class, assembly"