我已经在我的.net应用程序中为一些参数配置了附件,我在数据库中有一个固定的列长度,但在我的日志记录数据长度被超过了。从log4net跟踪日志中,我发现错误为
log4net:ERROR [AdoNetAppender] ErrorCode: GenericFailure. Exception while writing to database
MySql.Data.MySqlClient.MySqlException: Data too long for column 'action' at row 1
at MySql.Data.MySqlClient.MySqlStream.ReadPacket()
at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int32& insertedId)
at MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int32& insertedId)
at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)
at MySql.Data.MySqlClient.MySqlDataReader.NextResult()
at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
at log4net.Appender.AdoNetAppender.SendBuffer(IDbTransaction dbTran, LoggingEvent[] events)
at log4net.Appender.AdoNetAppender.SendBuffer(LoggingEvent[] events)
log4net: Shutdown called on Hierarchy [log4net-default-repository]
我的log4net配置中的参数如下
<parameter>
<parameterName value="action" />
<dbType value="String" />
<size value="45" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%5c{1}.%M" />
</layout>
</parameter>
你知道我可以在config中处理最大长度吗?
发布于 2016-08-08 23:17:33
我建议增加列的长度,因为这样会丢失日志。
如果你想你的日志是固定的大小,那么你的设置应该起作用。或者将其设置为"-1“,或者完全删除size属性,这样它现在将取决于您的表列的长度。
另外,如果您使用的是存储过程,我意识到您缺少"@“
<parameter>
<parameterName value="@action" />
<dbType value="String" />
<size value="-1" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%5c{1}.%M" />
</layout>
</parameter>
https://stackoverflow.com/questions/30456339
复制相似问题