【发布时间】:2017-03-29 10:50:05
【问题描述】:
我有ASP.Net WebAPI 项目并使用Log4Net API。
protected void LogException(Exception ex)
{
var msgParams = new Dictionary<string, string>
{
{ "Message", ex.Message },
{ "StackTrace", ex.StackTrace },
};
_logger.Info(JsonConvert.SerializeObject(msgParams));
}
XML 配置
<?xml version="1.0" encoding="utf-8" ?> <log4net>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file value="App.log" />
<appendToFile value="true" />
<maximumFileSize value="50KB" />
<maxSizeRollBackups value="2" />
<encoding value="utf-8" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level %thread %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingFile" />
</root>
但是,当任何异常发生并且 LogException() 之上被命中时,我没有收到任何异常,也没有在我的目录中看到任何 App.Log 文件。 p>
我在这里缺少什么? 任何帮助/建议都非常感谢。
【问题讨论】:
-
如果您使用像 debugbiew 这样的运行时跟踪工具,您可能会发现 apppool 帐户没有创建文件的权限。您应该将日志配置到应用程序根目录之外的另一个位置。
-
@tomredfern,我以管理员身份运行
-
只是为了确认您在运行时使用 XmlConfigurator 或程序集属性配置 log4net?
-
@stuartd,作为程序集属性
-
尝试在命名空间声明之前添加行 [assembly: log4net.Config.XmlConfigurator(Watch = true)]
标签: c# asp.net-web-api log4net