我正在尝试使用我知道正确的log4net XML配置文件在一个'经典'webforms应用程序中运行log4net,因为它是我与其他许多应用程序成功使用的文件的副本。我在主站点文件夹(config.log4net
)中有C:\inetpub\wwwroot\
文件,我在Global.asax.cs
中配置了log4net,如下所示:
protected void Application_Start(Object sender, EventArgs e)
{
var log = LogManager.GetLogger("SomeWebsite");
XmlConfigurator.Configure(new FileInfo("config.log4net"));
// bind log to the DI container
...
}
每当我使用log
实例(即使在Application_Start
内)都没有任何反应,甚至没有错误。我知道如果config.log4net
配置错误,log4net将无声地失败,但我确信这不是问题所在。我觉得它与FileInfo
的基本路径错误有关。
在这种情况下配置log4net的最佳方法是什么?
答案 0 :(得分:2)
如果要以这种方式获取文件,请尝试使用Server.MapPath:
var fi = new FileInfo(Server.MapPath("~/log4net.config"));
答案 1 :(得分:1)
在web.config中添加Log4Net配置,如下所示:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net debug="true">
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:\\TestProj\\TestLog.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>