我正在构建一个调用已编译可执行文件的应用程序。所述可执行文件的源代码项目文件由父应用程序的解决方案文件引用。子可执行文件是一个独立的命令行应用程序。父级是控制台应用程序的有效 GUI 包装器。当我编译控制台应用程序时,我可以访问应用程序中内置的所有 log4net 功能。但是,当我编译引用控制台应用程序源代码文件的父项目时,一切正常运行但没有生成日志。什么会导致此错误发生,如何解决此错误? log4net 的内部调试机制不会抛出任何消息。
最佳答案
要使 log4net 开始在引用的程序集中记录日志,您必须:
- 通过在应用程序启动时调用
log4net.Config.XmlConfigurator.Configure()
或通过添加[assembly] 来调用 log4net 的
到包装器应用程序的Configure()
函数: log4net.Config.XmlConfigurator(Watch=true)]AssemblyInfo.cs
文件。 - 如果您还没有为您的 GUI 包装器创建一个 log4net 配置部分,请在 app.config 中创建它。将 app.config 文件添加到您的项目,并将您的 log4net 配置信息从引用的库复制到其中。
- 确保运行应用程序的帐户有权在日志目录中写入和创建文件(假设您使用基于文件的日志记录)。
有关设置配置的更多信息,请参阅:http://logging.apache.org/log4net/release/manual/configuration.html
关于c# - log4net 不会为引用的项目文件创建日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3230739/