Skip to content

Releases: serilog-contrib/serilog-formatting-log4net

Version 1.3.1

30 Apr 21:01
Compare
Choose a tag to compare
  • Log events coming from Microsoft.Extensions.Logging are now identified if they have either an EventId.Id or an EventId.Name property. Previously, log events coming from Microsoft.Extensions.Logging were identified if they had both an Id and a Name property.

Version 1.3.0

19 Apr 16:19
Compare
Choose a tag to compare
  • The formatting of the message XML element has changed. If a log event is coming from Microsoft.Extensions.Logging, then the message is now formatted by switching off quoting of strings. The formatting of properties remains unchanged.

Before (1.2.0)

<event logger="Microsoft.EntityFrameworkCore.Database.Command" timestamp="2003-01-04T15:09:26.535+01:00" level="INFO">
  <properties>
    <data name="elapsed" value="10" />
    <!-- ... -->
    <data name="EventId.Id" value="20101" />
    <data name="EventId.Name" value="Microsoft.EntityFrameworkCore.Database.Command.CommandExecuted" />
  </properties>
  <message>Executed DbCommand ("10"ms) [Parameters=[""], CommandType='Text', CommandTimeout='30']"
""SELECT COUNT(*) FROM \"sqlite_master\" WHERE \"type\" = 'table' AND \"rootpage\" IS NOT NULL;"</message>
</event>

After (1.3.0)

<event logger="Microsoft.EntityFrameworkCore.Database.Command" timestamp="2003-01-04T15:09:26.535+01:00" level="INFO">
  <properties>
    <data name="elapsed" value="10" />
    <!-- ... -->
    <data name="EventId.Id" value="20101" />
    <data name="EventId.Name" value="Microsoft.EntityFrameworkCore.Database.Command.CommandExecuted" />
  </properties>
  <message>Executed DbCommand (10ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT COUNT(*) FROM "sqlite_master" WHERE "type" = 'table' AND "rootpage" IS NOT NULL;</message>
</event>
  • The message formatting behaviour can be configured with the new UseMessageFormatter() method of the options' builder. For example, all log events with the UppercaseMessage property set to true can have their messages uppercased.
var formatter = new Log4NetTextFormatter(options => options.UseMessageFormatter((logEvent, formatProvider) =>
{
    if (logEvent.Properties.TryGetValue("UppercaseMessage", out var up) && up is ScalarValue { Value: true })
    {
        return logEvent.RenderMessage(formatProvider).ToUpperInvariant();
    }
    return logEvent.RenderMessage(formatProvider);
}));

Version 1.2.0

10 Sep 13:51
Compare
Choose a tag to compare

Version 1.1.0

01 May 22:21
Compare
Choose a tag to compare

Version 1.0.2

11 Feb 23:10
Compare
Choose a tag to compare
  • Add a new Log4NetTextFormatter.Log4JFormatter static property which is configured for the log4j XML layout. This static property is also useful when using the Serilog.Settings.Configuration package where it can be used with the following accessor:
Serilog.Formatting.Log4Net.Log4NetTextFormatter::Log4JFormatter, Serilog.Formatting.Log4Net

Version 1.0.1

17 Jan 12:44
Compare
Choose a tag to compare

Version 1.0.0

08 Mar 16:28
Compare
Choose a tag to compare
  • First final version (i.e. non pre-release) which is identical to 1.0.0-rc.4

Version 1.0.0-rc.4

02 Nov 14:40
Compare
Choose a tag to compare
Version 1.0.0-rc.4 Pre-release
Pre-release

Version 1.0.0-rc.3

24 Oct 23:53
Compare
Choose a tag to compare
Version 1.0.0-rc.3 Pre-release
Pre-release
  • Replace UseLog4NetXmlNamespace(null) with UseNoXmlNamespace()
  • Reduce the public API surface
    • Removed all property getters on Log4NetTextFormatterOptionsBuilder
    • Converted the LineEndingExtensions class from public to internal
  • Improve log4j compatibility mode: don't write the xmlns:log4j attribute to be exactly compatible with log4j

Before (1.0.0-rc.2):

<log4j:event timestamp="1041689366535" level="INFO" xmlns:log4j="http://jakarta.apache.org/log4j/">
  <log4j:message><![CDATA[Hello from Serilog]]></log4j:message>
</log4j:event>

After (1.0.0-rc.3)

<log4j:event timestamp="1041689366535" level="INFO">
  <log4j:message><![CDATA[Hello from Serilog]]></log4j:message>
</log4j:event>

Version 1.0.0-rc.2

01 Apr 15:02
Compare
Choose a tag to compare
Version 1.0.0-rc.2 Pre-release
Pre-release
  • Handle non Serilog provided LogEventPropertyValue subclasses
  • The Log4NetTextFormatterOptionsBuilder constructor is now internal
  • Include the index in the property name when formatting a SequenceValue

Before (1.0.0-rc.1):

<log4net:data name="Args" value="--first-argument" />
<log4net:data name="Args" value="--second-argument" />

After (1.0.0-rc.2)

<log4net:data name="Args[0]" value="--first-argument" />
<log4net:data name="Args[1]" value="--second-argument" />
  • Documentation has been improved