Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# log4net-记录到数据库表_C#_Asp.net Mvc_Log4net - Fatal编程技术网

C# log4net-记录到数据库表

C# log4net-记录到数据库表,c#,asp.net-mvc,log4net,C#,Asp.net Mvc,Log4net,我在ASP.NETMVC中使用Log4net来记录不同的输出类型(文件和数据库)。我可以将数据记录到RollingFileAppender,但不能记录到AdoNetAppender 将新的log4net.config添加到带有file appender节的项目中&DBLog appender节 RollingFileAppender正在记录以下内容 信息2018-07-23 19:27:06下午–(空)–索引操作结束 方法:日志消息 stacktrace:System.Threading.Tas

我在ASP.NETMVC中使用Log4net来记录不同的输出类型(文件和数据库)。我可以将数据记录到
RollingFileAppender
,但不能记录到
AdoNetAppender

将新的log4net.config添加到带有
file appender节的项目中
&
DBLog appender节

RollingFileAppender
正在记录以下内容

信息2018-07-23 19:27:06下午–(空)–索引操作结束 方法:日志消息
stacktrace:System.Threading.Tasks.Task.ExecutionContextCallback> System.Threading.Tasks.Task.Execute> System.Threading.Tasks.Task.InnerInvoke> PartialViewApplSol.Controller.HomeController+c.b\u 3\u 1> PartialViewApplSol.App_Start.log4netHelper.LogMessage
PartialViewApplSol.App_Start.log4netHelper
类型:PartialViewApplSol.App_Start.log4netHelper行:19

  • 如何获取调用log4net.Message()的当前调用方方法?它总是在“log4netHelper.cs”(LogMessage/LogError)中显示方法名称。MSDN要求使用“System.Runtime.CompilerServices.CallerMemberName” 属性,但如何将其合并到我的逻辑中

  • 当前log4net.config具有RollingFileAppender和AdoneAppender 但只有RollingFileAppender将数据记录到文件中,没有任何内容是 已登录到数据库表


如果问题出现在log4net中,则最好启用log4net内部调试:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
    <add key="log4net.Internal.Debug" value="true"/>
</appSettings>
</configuration>

public class log4netHelper  
{    
    private static readonly ILog log4Net = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);    
    public log4netHelper()    
    {    
        if (HttpContext.Current.User != null && HttpContext.Current.User.Identity.IsAuthenticated)    
            MDC.Set("user", HttpContext.Current.User.Identity.Name);    
    }    
    public static void LogMessage(string message)    
    {    
        log4Net.Info(message);    
    }    

    public static void LogError(string message, Exception ex)    
    {    
        log4Net.Error(message, ex);    
    }    
}
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
    <add key="log4net.Internal.Debug" value="true"/>
</appSettings>
</configuration>
<configuration>
...

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

...
</configuration>