Here's my web.config information:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<root>
<level value="ALL" />
</root>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="c:\temp\log-file.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="1MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.SimpleLayout" />
</appender>
</log4net>
...
Here's the code that initializes the logger:
protected void SendMessage()
{
log4net.Config.XmlConfigurator.Configure();
ILog log = LogManager.GetLogger(typeof(Contact));
...
log.Info("here we go!");
log.Debug("debug afasf");
...
}
It doesn't work, no matter what I seem to do. I am referencing the 'log4net.dll' correctly, and by debugging the application I can see that the log object is getting initiated properly. This is an asp.net 3.5 framework web project. Any ideas/suggestions?
I thought originally this error may be due to a file write permission constraint, but that doesn't seem to be the case (or so I think).
I found the answer: I needed the requirePermission="false" tag in my web.config's configuration seciton.
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" **requirePermission="false"**/>
</configSections>
As far as I can see you are missing an appender for root:
<root>
<level value="ALL" />
<appender-ref ref="RollingFileAppender" />
</root>
I had to call fileAppender.ActivateOptions() to get it logging
Is it possible to run Debug View on the webserver?
If so, you may be able to see if log4net is reporting any errors (such as an access error or a error reading the configuration file)
来源:https://stackoverflow.com/questions/2850380/very-simple-file-appender-logging-not-working