网上的教程上配置文件基本上都差不多
<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自定义字段写入不进数据库的问题,布布扣,bubuko.com
原文地址:http://www.cnblogs.com/Hinagiku/p/3793976.html