log4net 与 ASP.NET MVC:没有任何反应
我正在尝试将 log4net 与 ASP.NET MVC 一起使用,但我无法使用它发生任何事情。 我已经在我的网络项目根目录中创建了一个配置:
<log4net>
<root>
<level value="INFO" />
<appender-ref ref="RollingLogFileAppender"/>
</root>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:\DWSApplicationFiles\AppLogs\app.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="100KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t]%-5p %c [%x] - %m%n" />
</layout>
</appender>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:\DWSApplicationFiles\AppLogs\app.log" />
<appendToFile value="false" />
<datePattern value="-dddd" />
<rollingStyle value="Date" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t]%-5p %c [%x] - %m%n" />
</layout>
</appender>
</log4net>
在我被问到之前:是的,应用程序有权写入该目录。我已经对此进行了测试,应用程序具有该目录的权限。
这是我尝试使用 log4net 的地方:
public class HomeController : Controller
{
readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public ActionResult Index()
{
log.Error("In Index ");
return View();
}
}
当我运行应用程序并转到此控制器时,log4net 不执行任何操作;它不会在该目录或任何内容中创建文件。
我已启用 log4net 的内部调试,并且在控制台中没有收到输出错误。 以下是我从 log4net 看到的全部内容:
log4net:log4net 程序集 [log4net,版本=1.2.10.0,文化=中性,PublicKeyToken=1b44e1d426115821]。从[C:\ Users \ twaldron.BULLFROGSPAS \ AppData \ Local \ Temp \ Temporary ASP.NET Files \ root \ 7642c99a \ 60feb7f2 \ assembly \ dl3 \ 17247033 \ 008dfd6d_e2d0ca01 \ log4net.DLL]加载。 (Microsoft Windows NT 6.1.7600.0 上的 .NET 运行时 [2.0.50727.4952])
log4net:DefaultRepositorySelector:defaultRepositoryType [log4net.Repository.Hierarchy.Hierarchy]
log4net:DefaultRepositorySelector:为程序集创建存储库 [Bullfrog.DWS.Web,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null]
log4net:DefaultRepositorySelector:程序集[Bullfrog.DWS.Web,版本= 1.0.0.0,文化=中性,PublicKeyToken = null]从[C:\ Users \ twaldron.BULLFROGSPAS \ AppData \ Local \ Temp \ Temporary ASP加载。 NET 文件\根\7642c99a\60feb7f2\程序集\dl3\2960c79f\b876bb2d_aca7cb01\Bullfrog.DWS.Web.DLL]
log4net:DefaultRepositorySelector:程序集 [Bullfrog.DWS.Web,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null] 未指定 RepositoryAttribute。
log4net:DefaultRepositorySelector:使用存储库 [log4net-default-repository] 和存储库类型 [log4net.Repository.Hierarchy.Hierarchy] 的程序集 [Bullfrog.DWS.Web,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null]
log4net:DefaultRepositorySelector:使用类型[log4net.Repository.Hierarchy.Hierarchy]创建存储库[log4net-default-repository] “WebDev.WebServer20.EXE”(托管 (v2.0.50727)):已加载“匿名托管 DynamicMethods 程序集”
I am trying to use log4net with ASP.NET MVC and I cannot get anything to happen with it.
I've created a config that is in my web project root:
<log4net>
<root>
<level value="INFO" />
<appender-ref ref="RollingLogFileAppender"/>
</root>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:\DWSApplicationFiles\AppLogs\app.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="100KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t]%-5p %c [%x] - %m%n" />
</layout>
</appender>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:\DWSApplicationFiles\AppLogs\app.log" />
<appendToFile value="false" />
<datePattern value="-dddd" />
<rollingStyle value="Date" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t]%-5p %c [%x] - %m%n" />
</layout>
</appender>
</log4net>
Before I am asked: yes, the application has permission to write to the directory. I have tested this and the application has permission to this directory.
Here is where I am trying to use log4net:
public class HomeController : Controller
{
readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public ActionResult Index()
{
log.Error("In Index ");
return View();
}
}
When I run the application and go to this controller log4net does nothing; it doesn't create the files in that directory or anything.
I have enabled internal debugging for log4net and I get no output errors in the console.
The following is all I see from log4net:
log4net: log4net assembly [log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821]. Loaded from [C:\Users\twaldron.BULLFROGSPAS\AppData\Local\Temp\Temporary ASP.NET Files\root\7642c99a\60feb7f2\assembly\dl3\17247033\008dfd6d_e2d0ca01\log4net.DLL]. (.NET Runtime [2.0.50727.4952] on Microsoft Windows NT 6.1.7600.0)
log4net: DefaultRepositorySelector: defaultRepositoryType [log4net.Repository.Hierarchy.Hierarchy]
log4net: DefaultRepositorySelector: Creating repository for assembly [Bullfrog.DWS.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]
log4net: DefaultRepositorySelector: Assembly [Bullfrog.DWS.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] Loaded From [C:\Users\twaldron.BULLFROGSPAS\AppData\Local\Temp\Temporary ASP.NET Files\root\7642c99a\60feb7f2\assembly\dl3\2960c79f\b876bb2d_aca7cb01\Bullfrog.DWS.Web.DLL]
log4net: DefaultRepositorySelector: Assembly [Bullfrog.DWS.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] does not have a RepositoryAttribute specified.
log4net: DefaultRepositorySelector: Assembly [Bullfrog.DWS.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] using repository [log4net-default-repository] and repository type [log4net.Repository.Hierarchy.Hierarchy]
log4net: DefaultRepositorySelector: Creating repository [log4net-default-repository] using type [log4net.Repository.Hierarchy.Hierarchy]
'WebDev.WebServer20.EXE' (Managed (v2.0.50727)): Loaded 'Anonymously Hosted DynamicMethods Assembly'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你在global.asax中有类似的东西吗?
Do you have something like this in global.asax?
确保您
在应用程序启动时调用。
Ensure that you call
At the startup of your application.
在 ASP.NET MVC 4 Web 应用程序中配置 Log4Net
下载 Log4Net:
修改Web.config 文件(来源):
进一步阅读:http://anandsonake.blogspot.in/2013/08/log4net-in-aspnet-mvc.html
Confuguring Log4Net in ASP.NET MVC 4 Web Application
Download Log4Net:
Add reference in ASP.Net MVC 4 application:
Modify Web.config file (source):
Further reading: http://anandsonake.blogspot.in/2013/08/log4net-in-aspnet-mvc.html
在 AssemblyInfo.cs 中添加以下行:
Add below line in AssemblyInfo.cs :