我在企业系统中使用log4net
,系统有三层:
这些层通过WCF(wsHttpBinding
)相互通信,每层都有一个日志文件。
当我运行测试工作流程时,每个层都执行了他的工作,但记录器没有写任何东西。
有什么想法吗?
答案 0 :(得分:1)
以下是一些想法:
在每个级别,您是否有log4net.Config.XmlConfigurator.Configure(...)
的电话?在大多数情况下,人们使用assembly属性在AssemblyInfo.cs / Program.cs / Global.asax.cs / etc中执行此操作。但您也可以在应用程序启动例程中的某处调用它。
请参阅此页面(“我应该何时记录我的第一条消息”):http://logging.apache.org/log4net/release/faq.html
如果您使用的是基于文件的日志记录,那么您在哪里尝试存储日志文件? - 目标目录是否存在,并且运行该层的用户帐户是否具有该文件夹的写入权限?对于Web应用程序,用户帐户是App Pool标识,对于Windows Services,用户帐户是运行该服务的Login。对于控制台和Windows应用程序,用户帐户可能是启动应用程序的用户。
如果所有其他方法都失败了,您可以打开log4net内部调试,这可能有所帮助:http://logging.apache.org/log4net/release/faq.html(“如何启用log4net内部调试”)
答案 1 :(得分:0)
我想您已在App.config
个文件中配置了log4net?一个常见的错误是忘记在每层的启动代码中调用log4net.Config.XmlConfigurator.Configure()
。如果这没有帮助,您需要向我们展示您的XML配置。