Skip to content

Commit 533a9d9

Browse files
committed
Compute _usesLog4JCompatibility only once (in the constructor)
1 parent 5962ecb commit 533a9d9

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

src/Log4NetTextFormatter.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ public class Log4NetTextFormatter : ITextFormatter
4747
private const string MachineNamePropertyName = "MachineName";
4848

4949
private readonly Log4NetTextFormatterOptions _options;
50+
private readonly bool _usesLog4JCompatibility;
5051

5152
/// <summary>
5253
/// Initialize a new instance of the <see cref="Log4NetTextFormatter"/> class.
@@ -64,6 +65,7 @@ public Log4NetTextFormatter(Action<Log4NetTextFormatterOptionsBuilder>? configur
6465
var optionsBuilder = new Log4NetTextFormatterOptionsBuilder();
6566
configureOptions?.Invoke(optionsBuilder);
6667
_options = optionsBuilder.Build();
68+
_usesLog4JCompatibility = ReferenceEquals(Log4NetTextFormatterOptionsBuilder.Log4JXmlNamespace, _options.XmlNamespace);
6769
}
6870

6971
/// <summary>
@@ -82,11 +84,11 @@ public void Format(LogEvent logEvent, TextWriter output)
8284
{
8385
throw new ArgumentNullException(nameof(output));
8486
}
85-
var xmlWriterOutput = UsesLog4JCompatibility ? new StringWriter() : output;
87+
var xmlWriterOutput = _usesLog4JCompatibility ? new StringWriter() : output;
8688
using var writer = XmlWriter.Create(xmlWriterOutput, _options.XmlWriterSettings);
8789
WriteEvent(logEvent, writer);
8890
writer.Flush();
89-
if (UsesLog4JCompatibility)
91+
if (_usesLog4JCompatibility)
9092
{
9193
// log4j writes the XML "manually", see https://github.com/apache/log4j/blob/v1_2_17/src/main/java/org/apache/log4j/xml/XMLLayout.java#L137-L145
9294
// The resulting XML is impossible to write with a standard compliant XML writer such as XmlWriter.
@@ -101,8 +103,6 @@ public void Format(LogEvent logEvent, TextWriter output)
101103
output.Write(_options.XmlWriterSettings.NewLineChars);
102104
}
103105

104-
private bool UsesLog4JCompatibility => ReferenceEquals(Log4NetTextFormatterOptionsBuilder.Log4JXmlNamespace, _options.XmlNamespace);
105-
106106
/// <summary>
107107
/// Write the log event into the XML writer.
108108
/// </summary>
@@ -113,7 +113,7 @@ private void WriteEvent(LogEvent logEvent, XmlWriter writer)
113113
{
114114
WriteStartElement(writer, "event");
115115
WriteEventAttribute(logEvent, writer, "logger", Constants.SourceContextPropertyName);
116-
var timestamp = UsesLog4JCompatibility ? XmlConvert.ToString(logEvent.Timestamp.ToUnixTimeMilliseconds()) : XmlConvert.ToString(logEvent.Timestamp);
116+
var timestamp = _usesLog4JCompatibility ? XmlConvert.ToString(logEvent.Timestamp.ToUnixTimeMilliseconds()) : XmlConvert.ToString(logEvent.Timestamp);
117117
writer.WriteAttributeString("timestamp", timestamp);
118118
writer.WriteAttributeString("level", LogLevel(logEvent.Level));
119119
WriteEventAttribute(logEvent, writer, "thread", ThreadIdPropertyName);
@@ -382,7 +382,7 @@ private void WriteException(LogEvent logEvent, XmlWriter writer)
382382
var formattedException = FormatException(exception);
383383
if (formattedException != null)
384384
{
385-
var elementName = UsesLog4JCompatibility ? "throwable" : "exception";
385+
var elementName = _usesLog4JCompatibility ? "throwable" : "exception";
386386
WriteContent(writer, elementName, formattedException);
387387
}
388388
}

0 commit comments

Comments
 (0)