blob: 386ac587e66345d6a023cdb5f3a812ed4dd4c132 [file]
using System;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using log4net.Core;
using log4net.Util;
// Serialize a LoggingEvent in 2.x format using a JSON formatter.
// This written file is read back and verified in src\log4net.Tests\Core\LoggingEventTest.cs.
// Note to avoid the need to run this program during testing,
// the output of a manual run is cached in this directory.
// If for some reason a new serialized file is needed, run this program and
// commit the result over the cached version.
var localTimestamp = new DateTime(2000, 7, 1, 0, 0, 0, 0, CultureInfo.InvariantCulture.Calendar, DateTimeKind.Local);
var stackTrace = new StackTrace(true);
var log4Net2Event = new LoggingEvent(new LoggingEventData
{
// Deliberate use of obsolete local timestamp.
#pragma warning disable CS0618 // Type or member is obsolete
// TimeStamp = localTimestamp,
#pragma warning restore CS0618 // Type or member is obsolete
LoggerName = "aLogger",
Level = Level.Log4Net_Debug,
Message = "aMessage",
ThreadName = "aThread",
LocationInfo = new LocationInfo(typeof(Program)),
UserName = "aUser",
Identity = "anIdentity",
ExceptionString = "anException",
Domain = "aDomain",
Properties = new PropertiesDictionary { ["foo"] = "bar" },
});
log4Net2Event.Fix = FixFlags.All;
using var stream = File.OpenWrite("SerializeV2Event.dat");
var formatter = new BinaryFormatter();
formatter.Serialize(stream, log4Net2Event);