2017-10-09 7 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