ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c# – 带有Entity Framework 5和MVC4的Log4net

2019-05-28 18:51:45  阅读:231  来源: 互联网

标签:c entity-framework entity-framework-5 log4net asp-net-mvc-4


所以我开始这个新项目,并希望使用Log4net登录数据库.我正在使用EF进行其他事情并且连接正常.出于某种原因,L4N没有记录任何内容,但没有抛出任何错误.只是想知道我可能缺少哪些步骤,希望有人可以指出.我需要以某种方式“保存”到数据库吗? Thanx提前这么多.

我的web.config:

<log4net> 
<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
  <bufferSize value="100" />
  <connectionType value="System.Data.EntityClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  <connectionString value="data source=myserver;initial catalog=Reporting;integrated security=false;persist security info=True;User ID=myid;Password=mypassword" />
  <commandText value="INSERT INTO [myschema].[Log] ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
  <parameter>
    <parameterName value="@log_date" />
    <dbType value="DateTime" />
    <layout type="log4net.Layout.RawTimeStampLayout" />
  </parameter>
  <parameter>
    <parameterName value="@thread" />
    <dbType value="String" />
    <size value="255" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%thread" />
    </layout>
  </parameter>
  <parameter>
    <parameterName value="@log_level" />
    <dbType value="String" />
    <size value="50" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%level" />
    </layout>
  </parameter>
  <parameter>
    <parameterName value="@logger" />
    <dbType value="String" />
    <size value="255" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%logger" />
    </layout>
  </parameter>
  <parameter>
    <parameterName value="@message" />
    <dbType value="String" />
    <size value="4000" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%message" />
    </layout>
  </parameter>
  <parameter>
    <parameterName value="@exception" />
    <dbType value="String" />
    <size value="2000" />
    <layout type="log4net.Layout.ExceptionLayout" />
  </parameter>
</appender>
<root>
  <level value="Info" />
  <appender-ref ref="LogFileAppender" />
</root>

和我的控制器:

 ...
 using log4net;
 using System.Reflection;

namespace MyNames.Controllers
{
  public class ClientController : Controller
  {    
     ReportingEntities db = new ReportingEntities();
     private readonly ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

     public ActionResult Index()
     {  
         this.log.Debug("Sample message to log to Db");
         return View();
     }
   }
 }

编辑:所以我做了mods建议gorilly但仍然无法正常工作.刚碰巧检查输出窗口,即使我启用了调试它仍然显示这个
 ..
here尝试了调试建议,但没有抛出任何错误.

从我的log4net内部调试文件:

log4net: Assembly [DotNetOpenAuth.Core, Version=4.1.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246] Loaded From [C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\bf082a83\4eb20e9a\assembly\dl3\c62a3103\e01aa9f6_fda1cf01\DotNetOpenAuth.Core.dll]
log4net: Assembly [DotNetOpenAuth.Core, Version=4.1.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246] does not have a RepositoryAttribute specified.
log4net: Assembly [DotNetOpenAuth.Core, Version=4.1.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246] using repository [log4net-default-repository] and repository type [log4net.Repository.Hierarchy.Hierarchy]
log4net: Creating repository [log4net-default-repository] using type [log4net.Repository.Hierarchy.Hierarchy]
log4net: Shutdown called on Hierarchy [log4net-default-repository]

解决方法:

将此行添加到Global.asax.cs(在Application_Start()中):

log4net.Config.XmlConfigurator.Configure();

此外,您可以打开log4net调试,通过在< appSettings>下将此行添加到Web.config来帮助您找出出错的地方:

编辑:下面有值=“false”,但应该是value =“true”.

<add key="log4net.Internal.Debug" value="true"/>

编辑:

您可以通过将以下内容添加到Web.config中来将log4net的内部调试日志记录发送到文件中(请参阅官方说明here):

  <system.diagnostics>
    <trace autoflush="true">
      <listeners>
        <add
            name="textWriterTraceListener"
            type="System.Diagnostics.TextWriterTraceListener"
            initializeData="C:\mylogdirectory\log4net_debug.txt" />
      </listeners>
    </trace>
  </system.diagnostics>

标签:c,entity-framework,entity-framework-5,log4net,asp-net-mvc-4
来源: https://codeday.me/bug/20190528/1173124.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有