我们正在尝试使用Log4Net从我们的IIS 6部署的WCF应用程序进行登录。我们正在尝试登录到一个文件,但似乎无法创建日志文件,更不用说看到它们中的日志输出了。 web.config的相关部分是:
<sectionGroup name="common">
<section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
</sectionGroup>
...
<common>
<logging>
<factoryAdapter type="Common.Logging.Simple.TraceLoggerFactoryAdapter, Common.Logging">
<arg key="level" value="INFO" />
<arg key="showLogName" value="true" />
<arg key="showDataTime" value="true" />
<arg key="dateTimeFormat" value="yyyy/MM/dd HH:mm:ss:fff" />
</factoryAdapter>
</logging>
</common>
<log4net>
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="c:\logs\ApplicationInfoTest.log" />
<threshold value="INFO" />
<param name="AppendToFile" value="true" />
<param name="DatePattern" value="ddMMyyyy" />
<param name="MaxSizeRollBackups" value="10" />
<param name="MaximumFileSize" value="10MB" />
<param name="RollingStyle" value="Size" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="Header" value="\r\n\r\n---------------------------------------------\r\n" />
<param name="Footer" value="\r\n---------------------------------------------\r\n\r\n" />
<param name="ConversionPattern" value="%d [%t] %-5p - %m%n" />
</layout>
</appender>
<root>
<level value="INFO" />
<appender-ref ref="FileAppender" />
</root>
</log4net>
使用这种配置,我们可以看到在使用DebugView时我们的应用程序中出现了INFO级别的日志记录,但很明显这是来自 一块而不是一块 片。
我们在web.config中设置的内容是否有问题?这是我们为要写入日志而创建的目录的权限问题吗?
请指出我们明显的错误。
答案 0 :(得分:8)
我还必须将此行添加到我的应用程序的AssemblyInfo.cs文件中,以使log4net正常工作。
// LOG 4 net config
[assembly:log4net.Config.XmlConfigurator(Watch=true)]
答案 1 :(得分:5)
使用ProcessMonitor from SysInternals找出拒绝权限的位置
(可能您可以通过附加调试器并捕获异常来确定相同的信息,而不是在Just My Code中)
您确定运行该服务的进程是否具有您尝试写入的文件夹的权限?
答案 2 :(得分:2)
尝试XmlConfigurator.Configure()
答案 3 :(得分:0)
您是否为log4net配置了配置部分?我没有在你的代码片段中看到它
答案 4 :(得分:0)
我首先将WCF服务作为控制台应用程序运行 - 这样您就可以指定要运行的应用程序的用户帐户,并查看问题是您的配置还是通过IIS运行服务的权限问题。< / p>
如果您不确定如何将服务作为控制台应用程序运行,请查看http://www.jacopretorius.net/2009/08/running-windows-service-inside-console.html