我正在为Internet Explorer 9.0创建一个添加(类库(.dll))。并希望使用log4net dll进行日志记录。
我正在使用以下
我创建了一个app.config文件,这是我正在使用的配置,
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,log4net,
Version=1.2.11.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a"/>
</configSections>
<log4net>
<appender name="RollingLogFileAppender"
type="log4net.Appender.RollingFileAppender">
<param name="File" value="D:\\Temp\\Temp.log"/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="30"/>
<param name="MaximumFileSize" value="10MB"/>
<param name="RollingStyle" value="Date" />
<param name="StaticLogFileName" value="true"/>
<param name="DatePattern" value="yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout">
<param name="Header" value="[Header]\r\n"/>
<param name="Footer" value="[Footer]\r\n"/>
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - (%F:%L)
%m%n"/>
</layout>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>
</configuration>
在AssemblyInfo.cs文件中添加了以下代码行
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
在DocumentComplete事件处理程序中添加了以下代码行。这会触发Internet Explorer页面加载。
log4net.Config.XmlConfigurator.Configure();
当我的添加功能启用并运行时。我在指定的路径“D:\ Temp \ Temp.log”中看不到任何日志。我有点困惑。
非常感谢任何帮助。
由于
答案 0 :(得分:1)
非常感谢所有回复
问题在于Internet Explorer在受保护模式下运行。在受保护模式下运行的Internet Explorer会限制将附加文件写入磁盘。
我对配置做的另一项更改是将以下行添加到Assembly.cs文件
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "C:\\Program
Files\\Temp\\app.config", Watch = true)]
答案 1 :(得分:0)
我猜你正在运行一个应用程序,那么你应该将你的代码添加到app app.config中。如果您使用的是Web应用程序,请将配置添加到web.config文件中。我还会检查并更改以下的双斜线:
<param name="File" value="D:\Temp\Temp.log"/>
当您作为Web应用程序运行时,您需要检查应用程序池用户对D:\ Temp \ path(完全访问权限)的访问权限。
如果您在assambly中使用该属性,则无需致电:
log4net.Config.XmlConfigurator.Configure();