如何防止Log4Net截断异常?

Dar*_*ryl 5 c# logging log4net log4net-configuration log4net-appender

我正在将Log4Net事件插入SQL数据库.Message和Exception字段都是8000个字符,但偶尔会有一个超过8000个字符的事件,并且数据会被截断.

是否有任何可配置的方法来将事件分成多行?如果没有,我正在考虑实现我自己的ILog,它自动处理日志记录事件的分块,所以我没有得到任何截断的数据.有没有人有更好的主意?

编辑 - 记录配置/数据库列定义

这是我当前的参数配置:

<parameter>
  <parameterName value="@message"/>
  <dbType value="String"/>
  <size value="8000"/>
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%message"/>
  </layout>
</parameter>
<parameter>
  <parameterName value="@exception"/>
  <dbType value="String"/>
  <size value="8000"/>
  <layout type="log4net.Layout.ExceptionLayout"/>
</parameter>
Run Code Online (Sandbox Code Playgroud)

数据库表定义如下:

[Message] [nvarchar](max) NULL,
[Exeception] [ntext] NULL,
Run Code Online (Sandbox Code Playgroud)

Pet*_*ter 6

您必须将大小值属性设置为 -1。这将保存整个异常。