关于log4net自定义字段写入不进数据库的问题

网上的教程上配置文件基本上都差不多

<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
  </configSections>
  <log4net>
    <logger name="Logger">
      <level value="All"/>
      <appender-ref ref="ADONetAppender"/>
    </logger>
    <!--<root>
            <level value="All" />
      <appender-ref ref="ADONetAppender" />
        </root>-->
    <appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
      <!--BufferSize为缓冲区大小-->
      <param name="BufferSize" value="1"/>
      <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      <connectionString value="database=***;server=.;User ID=sa;Password=***;"/>
      <commandText value="INSERT INTO SYS_Log ([LogTime],[Thread],[Level],[Logger],[Message],[UserID],[OperationID]) VALUES (@log_date, @thread, @log_level, @logger, @message,@UserID,@OperationID)"/>
      <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="@UserID" />
        <dbType value="string" />
        <size value="255" />
        <layout type="Common.Logger.CustomLayout">
          <conversionPattern value="%UserID" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@OperationID"/>
        <dbType value="string" />
        <size value="20" />
        <layout type="Common.Logger.CustomLayout">
          <conversionPattern value="%OperationID"/>
        </layout>
      </parameter>
    </appender>
  </log4net>
</configuration>

请注意我的最后一个字段,之前这个字段我是这样配置的

 <parameter>
        <parameterName value="@OperationID"/>
        <dbType value="Int" />
        <layout type="Common.Logger.CustomLayout">
          <conversionPattern value="%OperationID"/>
        </layout>
</parameter>

因为我的这个ID在数据库中是int类型的,然后我在想log4net应该不会不支持int类型吧,然后我这里就这样配置了

然后一直就是插入不进去,直到我一个朋友跟我说把最后一个字段的类型改成string看看,我改了之后果断就好了有木有

虽然不知道是什么原因,但是问题总算是解决了。在这里记下这个问题,为以后有犯我这个错误的朋友做点贡献。

关于log4net自定义字段写入不进数据库的问题

时间: 2024-08-06 16:05:36

关于log4net自定义字段写入不进数据库的问题的相关文章

Log4net 自定义字段 写入Oracle 使用ODP.NET Managed驱动

一.环境说明: 开发工具:vs2010   ,数据库:oracle 11g ,版本:log4net的目前最新版本1.2.13.0    :  Oracle.ManagedDataAccess.dll  Version 4.121.1.0 二.官网dll准备 log4net      http://mirrors.hust.edu.cn/apache//logging/log4net/binaries/log4net-1.2.13-bin-newkey.zip Oracle.ManagedData

Log4net 自定义字段到数据库

今天要求做个log4net自定义字段到数据库,在网上找了好多例子,都运行不成功.最后找了个国外的,很简单的就解决了. log4net它已经定义的字段有 <commandText value="INSERT INTO xiao_log(Date,Thread,Level,Logger,Message)VALUES(@log_date, @thread, @log_level, @logger, @message)"/> 中的Date,Thread,Level,Logger,M

Log4Net 自定义字段记录到数据库

大家可能都用过Log4net插件来记录日志,该插件默认提供了这几个字段@log_date,@exception, @thread, @log_level, @logger, @message, 但是这并不能完全满足我们日常记录日志的需求,我们可能需要扩展自己所需的其他字段,来记录到数据库.例如,对于用户操作日志,我们可能需要记录操作人员ID或者姓名,或者操作类型或者操作信息等. 下面简单地介绍一下Log4Net 自定义字段记录到数据库: 第一步,当然是创建对应的数据库日志表,如下图所示: 第二步

c#用log4Net将日志写入到Oracle数据库,并写入到文件中

原文:c#用log4Net将日志写入到Oracle数据库,并写入到文件中 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_37913923/article/details/79072898 1.从官网下载log4net包,安装到项目中: 2.配置文件log4net.config/app.config <?xml version="1.0" encoding=&

Log4net 自定义字段到数据库(二)

这种方法比第一种方法麻烦些 Log4Net.config <?xml version="1.0" encoding="utf-8" ?> <configuration> <!-- Author:GaoBingBing--> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfiguratio

使用Log4net把日志写入到SqlServer数据库

1.官网URL: http://logging.apache.org/log4net/ 2.配置文件参照URL: http://logging.apache.org/log4net/release/config-examples.html 3.在Web.config中加入以下代码 3.1:在configSections中加入 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionH

Log4net 使用之 自定义字段

Log4net 是.Net下一个非常优秀的开源日志记录组件.Log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介. 由于业务需要,计划为日志增加2个字段,除了Log4net默认字段,额外增加了LOG_TYPE 和 LOG_OPERATOR 两个字段用于对日志分类和记录相关操作的人员,以便于检索. 本文方法参考了StackOverFlow问答中的内容(https://stackoverflow.com/questions/12139486/log4net-

数据库的OLE字段写入长二进制文件

//'*************************************************************************************** //'函数:将数据库的OLE字段写入长二进制文件 //'*************************************************************************************** //bool THsPart_clsPartCommonDB::PrintFieldT

DEDECMS栏目自定义字段添加

用到的文件: catalog_add.htm  路径:\dede\templets\ catalog_edit.htm  路径:\dede\templets\  catalog_add.php  路径:\dede\ catalog_edit.php  路径:\dede\ 1.打开数据库找到:dede_arctype表,在表的最后面添加上我们自定义的字段名称: 首先打开catalog_add.htm文件在找到一个你认为不错的地方添加我们自定义栏目的编辑框,比如下面这是我自己添加的地方(添加在了 栏