C# 从Mono中的程序集加载log4net配置
我正在用Mono开发一个C#应用程序,并尝试使用log4net。当我手动加载配置时,记录器工作正常,但是,我想要更优雅的配置 在log4net文档中,它声明可以使用以下(或类似)行从程序集加载配置: [程序集:log4net.Config.XmlConfigurator(ConfigFileExtension=“log4net”,Watch=true)] 我已经确保配置文件被移动到build目录并具有该扩展名。我还确保AssemblyInfo.cs在MonoDevelop中标记为“应用程序定义”。我不知道这为什么不起作用。有人有什么想法吗C# 从Mono中的程序集加载log4net配置,c#,mono,log4net,monodevelop,C#,Mono,Log4net,Monodevelop,我正在用Mono开发一个C#应用程序,并尝试使用log4net。当我手动加载配置时,记录器工作正常,但是,我想要更优雅的配置 在log4net文档中,它声明可以使用以下(或类似)行从程序集加载配置: [程序集:log4net.Config.XmlConfigurator(ConfigFileExtension=“log4net”,Watch=true)] 我已经确保配置文件被移动到build目录并具有该扩展名。我还确保AssemblyInfo.cs在MonoDevelop中标记为“应用程序定义”
顺便说一句:我已经找遍了所有的地方,试图找到答案。我还尝试从一个资源加载配置,但也不想工作。在log4net中使用多个配置文件是可能的,但很尴尬。请参见此处的讨论: 您是否在.exe和.dll中进行日志记录 你能用一个配置文件吗 请记住文档中的本节:“如果使用配置属性,则必须调用log4net以允许它读取属性。对LogManager.GetLogger的简单调用将导致读取和处理调用程序集上的属性。因此,必须在应用程序启动期间,以及在加载和调用任何外部程序集之前,尽早进行日志记录调用。” 试着把这个问题归结为一个简单的例子
- 确保配置文件名为exename.exe.log4net
- 确保将问题中的AssemblyAttribute放入.exe的AssemblyInfo.cs中
- 确保在从.DLL调用任何代码之前,尽快在.exe中调用LogManager.GetLogger