首页 新闻 会员 周边 捐助

在mvc中使用log4net框架中插入数据库

0
悬赏园豆:50 [已解决问题] 解决于 2018-03-24 16:57

最近在使用log4net 记录日志 但是遇到了一些问题

可以写到text里面 但是不能插入数据库

配置文件写好了和Assemblyinfo.cs 写好了

这是控制器

数据库没有数据

但是text里面已经写入了

数据库连接字符串正确,添加语句正确

log4net中代码如下

log4net.net
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <!--设置一个自定义配置区域-->
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
  <!---->
  <log4net debug="true">
    <root>
      <!--
        debug 调试 
        info  信息
        warn  警告
        error 错误
        fatal 严重错误
      -->
      <level value="debug" />
      
      <!--
        对应的日志记录方式
        RollingLogFileAppender 追加日志文件
        ConsoleAppender 控制台
        ADONetAppender 使用ADO.NET 将日志写入到 数据库
      -->
      <appender-ref ref="T148FileAppender" />
      <appender-ref ref="ConsoleAppender" />
      <appender-ref ref="SqlAppender"/>
    </root>
    <appender name="ConsoleAppender"  type="log4net.Appender.ConsoleAppender" >
      <!--日志显示时的格式-->
      <layout type="log4net.Layout.PatternLayout">
        <!--<param name="header" value="T148日志记录"/>-->
        <header value ="T148日志记录  &#13;&#10;"/>
        <footer value="================== &#13;&#10;"/>
        <conversionPattern value="[%date] %level [%thread][%c:%line] - %m%n" />
      </layout>
    </appender>
    <appender name="T148FileAppender" type="log4net.Appender.RollingFileAppender" >
      <!--文件路径和文件名-->
      <file value="logfile/" />   
      <!--在文件中进行追加-->
      <appendToFile value="true" />
      
      <!--滚动类型: Once 滚动一次
        Size 按文件大小创建
        Date 按文件日期
        Composite 日期,大小 复杂模式
      -->
      <rollingStyle value="Composite" />
      <!--是否为固定文件名-->
      <staticLogFileName value="false" />
      <!--日期格式-->
      <datePattern value="yyyy-MM-dd'.log'" />
      <!--最大文件备份数-->
      <maxSizeRollBackups value="10" />
      
      <!--最大文件大小-->
      <maximumFileSize value="1MB" />
      <layout type="log4net.Layout.PatternLayout">
        <!--<param name="header" value="T148日志记录"/>-->
        <header value ="T148日志记录  &#13;&#10;"/>
        <footer value="================== &#13;&#10;"/>
        <conversionPattern value="[%date] %level [%thread][%c:%line] - %m%n" />
      </layout>
    </appender>
    <appender name="SqlAppender" type="log4net.Appender.AdoNetAppender" >
      <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      <connectionString value ="server=.;database=T148Log;uid=sa;pwd=123456"/>
      <commandText value="INSERT INTO Log VALUES (@date, @thread, @level, @logger, @message,@Exception)"/>
      <parameter>
        <parameterName value="@date"/>
        <dbType value="DateTime"/>
        <layout type="log4net.Layout.PatternLayout" value="%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}"/>
      </parameter>
      <parameter>
        <parameterName value="@thread"/>
        <dbType value="String"/>
        <size value="255"/>
        <layout type="log4net.Layout.PatternLayout" value="%thread"/>
      </parameter>
      <parameter>
        <parameterName value="@level"/>
        <dbType value="String"/>
        <size value="50"/>
        <layout type="log4net.Layout.PatternLayout" value="%level"/>
      </parameter>
      <parameter>
        <parameterName value="@logger"/>
        <dbType value="String"/>
        <size value="255"/>
        <layout type="log4net.Layout.PatternLayout" value="%logger"/>
      </parameter>
      <parameter>
        <parameterName value="@message"/>
        <dbType value="String"/>
        <size value="4000"/>
        <layout type="log4net.Layout.PatternLayout" value="%message"/>
      </parameter>
      <parameter>
        <parameterName value="@Exception"/>
        <dbType value="String"/>
        <size value="4000"/>
        <layout type="log4net.Layout.PatternLayout" value="%Exception"/>
      </parameter>
    </appender>
  </log4net>
  
</configuration>

 

四个春天的主页 四个春天 | 初学一级 | 园豆:31
提问于:2018-03-21 19:23

建议贴出 Log4net.config 中的配置

dudu 6年前

@dudu: 嗯嗯 上传了

HJumping 6年前
< >
分享
最佳答案
0

有没有引用System.Data

收获园豆:50
dudu | 高人七级 |园豆:31030 | 2018-03-22 15:46

在controllers里面引用system.data 没有用 提示using指令是不需要的

四个春天 | 园豆:31 (初学一级) | 2018-03-22 16:40

@HJumping: 点开Visual Studio右侧解决方案管理器中的“引用”,看有没有System.Data

dudu | 园豆:31030 (高人七级) | 2018-03-22 16:44

@dudu: 

嗯 有

四个春天 | 园豆:31 (初学一级) | 2018-03-22 16:47

@HJumping: 参考 开箱即用 - log4net 日志 检查一下配置

dudu | 园豆:31030 (高人七级) | 2018-03-22 16:53

@dudu: 我又写了一个控制台程序,还是这些代码没有改,完全没有错啊,文本文件也记录了,数据库也记录了,可是换成mvc就不记录数据库,我找老师看了一下 我们老师也没有发现错误。

四个春天 | 园豆:31 (初学一级) | 2018-03-22 17:04

@HJumping: Web.config 中有没有引用 Log4net.config ?

dudu | 园豆:31030 (高人七级) | 2018-03-22 17:07

@dudu: 

我在view文件夹下Web.config里面引用了 ,在根目录下Web.config文件里没有引用

四个春天 | 园豆:31 (初学一级) | 2018-03-22 17:14

@HJumping: 要在根目录下的Web.config引用

dudu | 园豆:31030 (高人七级) | 2018-03-22 17:16

@HJumping: 根目录引用

肖恩部落 | 园豆:585 (小虾三级) | 2018-03-22 17:17

@dudu: 

引用了 不过还是不记录数据库 

是不是我controller里的 static ILog log = LogManager.GetLogger(typeof(LoginController));有错

四个春天 | 园豆:31 (初学一级) | 2018-03-22 17:34

@庸斋杂记: 嗯 刚改了

四个春天 | 园豆:31 (初学一级) | 2018-03-22 17:35

@HJumping: 参考 Log4Net 1.2.0 记录在MSSql数据库用法,有没添加 log4net.Config.XmlConfigurator.Configure();或者[assembly: log4net.Config.XmlConfigurator(Watch = true)]

dudu | 园豆:31030 (高人七级) | 2018-03-22 17:40

@dudu: 您好 经过这两天的仔细排查 我终于解决问题了 ,首先在Web.Config里引用log4net引用错了,换成了根目录,其次Log4net中的格式有误,谢谢您

四个春天 | 园豆:31 (初学一级) | 2018-03-24 16:56

@HJumping: 能发一下完整的代码吗

努力努力再努力i | 园豆:200 (初学一级) | 2019-03-09 10:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册