问题
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).
回答1:
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>
回答2:
As far as I can see you are missing an appender for root:
<root>
<level value="ALL" />
<appender-ref ref="RollingFileAppender" />
</root>
回答3:
I had to call fileAppender.ActivateOptions() to get it logging
回答4:
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