[
https://issues.apache.org/jira/browse/LOG4NET-581?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17043220#comment-17043220
]
Roman Bäriswyl commented on LOG4NET-581:
----------------------------------------
[[email protected]]
For projects using Log4Net, I created a Contest Property Wrapper like this one:
{code:java}
private static void SetContextProperty(string propertyName, object value)
{
if (value == null)
{
log4net.LogicalThreadContext.Properties.Remove(propertyName);
}
else
{
log4net.LogicalThreadContext.Properties[propertyName] = value;
}
}{code}
This makes sure that no null values are there.
For newer projects, we moved to Serilog.
> NullReferenceException from
> log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData
> -----------------------------------------------------------------------------------
>
> Key: LOG4NET-581
> URL: https://issues.apache.org/jira/browse/LOG4NET-581
> Project: Log4net
> Issue Type: Bug
> Components: Other
> Affects Versions: 2.0.8
> Environment: Windows Server 2012R
> Reporter: Vlad Lee
> Assignee: Dominik Psenner
> Priority: Major
> Labels: patch
> Fix For: 2.1.0
>
> Attachments: ReadOnlyPropertiesDictionary.cs
>
>
> Hello,
> Below is the full exception stack. Exception happens because entryValue is
> null, so attempt to get IsSerializable attribute from GetType() was failing.
> Updated file is attached, this works for us now. Let me know if you have
> questions.
> Thank you,
> Vlad
> System.NullReferenceException: Object reference not set to an instance of an
> object.
> Server stack trace:
> at System.Object.GetType()
> at
> log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData(SerializationInfo
> info, StreamingContext context)
> at
> System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object
> obj, ISurrogateSelector surrogateSelector, StreamingContext context,
> SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter,
> ObjectWriter objectWriter, SerializationBinder binder)
> at
> System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo
> objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo)
> at
> System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object
> graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck)
> at
> System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream
> serializationStream, Object graph, Header[] headers, Boolean fCheck)
> at
> System.Runtime.Remoting.Channels.BinaryServerFormatterSink.SerializeResponse(IServerResponseChannelSinkStack
> sinkStack, IMessage msg, ITransportHeaders& headers, Stream& stream)
> at
> System.Runtime.Remoting.Channels.BinaryServerFormatterSink.ProcessMessage(IServerChannelSinkStack
> sinkStack, IMessage requestMsg, ITransportHeaders requestHeaders, Stream
> requestStream, IMessage& responseMsg, ITransportHeaders& responseHeaders,
> Stream& responseStream)
--
This message was sent by Atlassian Jira
(v8.3.4#803005)