2017-10-09 64 views
0

我們使用log4net.ElasticSearch appender來將應用程序日誌消息發送到ElasticSearch。maxJsonLength超過log4net的日誌記錄ElasticSearch appender

我們經常登錄服務請求和響應的上下文對象記錄事件,調試/支持的目的 - 它似乎是有時連載時的反應可能過大,這將導致以下異常:

System.InvalidOperationException occurred 
    HResult=-2146233079 
    Message=Error during serialization or deserialization using the JSON JavaScriptSerializer. The length of the string exceeds the value set on the maxJsonLength property. 
    Source=System.Web.Extensions 
    StackTrace: 
    at System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, StringBuilder output, SerializationFormat serializationFormat) 
    at System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, SerializationFormat serializationFormat) 
    at log4net.ElasticSearch.ExtensionMethods.ToJson[T](T self) 
    InnerException: 

有沒有辦法增加這個限制?

回答

1

你可以做一個拉請求的附加目的地:

https://github.com/jptoto/log4net.ElasticSearch/blob/f5d122526f410d1294bc8d3aeb5a94379800f552/src/log4net.ElasticSearch/ExtensionMethods.cs

public static string ToJson<T>(this T self) 
    { 
     JavaScriptSerializer serializer = new JavaScriptSerializer(); 
     serializer.MaxJsonLength = Int32.MaxValue; 
     return serializer.Serialize(self); 
    } 
+0

非常好的主意 - 感謝 - 完成了! https://github.com/jptoto/log4net.ElasticSearch/pull/92 – ultra909