Github user dpsenner commented on a diff in the pull request:

    https://github.com/apache/logging-log4net/pull/22#discussion_r192366055
  
    --- Diff: src/Layout/XmlLayoutBaseNS.cs ---
    @@ -0,0 +1,281 @@
    +#region Apache License
    +//
    +// Licensed to the Apache Software Foundation (ASF) under one or more
    +// contributor license agreements. See the NOTICE file distributed with
    +// this work for additional information regarding copyright ownership.
    +// The ASF licenses this file to you under the Apache License, Version 2.0
    +// (the "License"); you may not use this file except in compliance with
    +// the License. You may obtain a copy of the License at
    +//
    +// http://www.apache.org/licenses/LICENSE-2.0
    +//
    +// Unless required by applicable law or agreed to in writing, software
    +// distributed under the License is distributed on an "AS IS" BASIS,
    +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +// See the License for the specific language governing permissions and
    +// limitations under the License.
    +//
    +#endregion
    +
    +using System;
    +using System.IO;
    +using System.Text;
    +using System.Xml;
    +
    +using log4net.Util;
    +using log4net.Core;
    +
    +namespace log4net.Layout
    +{
    +   /// <summary>
    +   /// Layout that formats the log events as XML elements using a 
namespace aware writer.
    +   /// </summary>
    +   /// <remarks>
    +   /// <para>
    +   /// This is an abstract class that must be subclassed by an 
implementation
    +   /// to conform to a specific schema.
    +   /// </para>
    +   /// <para>
    +   /// Deriving classes must implement the <see cref="FormatXml"/> method.
    +   /// </para>
    +   /// </remarks>
    +   abstract public class XmlLayoutBaseNS : LayoutSkeleton
    +   {
    +           #region Protected Instance Constructors
    +
    +           /// <summary>
    +           /// Protected constructor to support subclasses
    +           /// </summary>
    +           /// <remarks>
    +           /// <para>
    +           /// Initializes a new instance of the <see 
cref="XmlLayoutBaseNS" /> class
    +           /// with no location info.
    +           /// </para>
    +           /// </remarks>
    +           protected XmlLayoutBaseNS() : this(false)
    +           {
    +                   IgnoresException = false;
    +           }
    +
    +           /// <summary>
    +           /// Protected constructor to support subclasses
    +           /// </summary>
    +           /// <remarks>
    +           /// <para>
    +           /// The <paramref name="locationInfo" /> parameter determines 
whether
    +           /// location information will be output by the layout. If
    +           /// <paramref name="locationInfo" /> is set to <c>true</c>, 
then the
    +           /// file name and line number of the statement at the origin of 
the log
    +           /// statement will be output.
    +           /// </para>
    +           /// <para>
    +           /// If you are embedding this layout within an SMTPAppender
    +           /// then make sure to set the <b>LocationInfo</b> option of that
    +           /// appender as well.
    +           /// </para>
    +           /// </remarks>
    +           protected XmlLayoutBaseNS(bool locationInfo)
    +           {
    +                   IgnoresException = false;
    +                   m_locationInfo = locationInfo;
    +           }
    +
    +           #endregion Protected Instance Constructors
    +
    +           #region Public Instance Properties
    +
    +           /// <summary>
    +           /// Gets a value indicating whether to include location 
information in
    +           /// the XML events.
    +           /// </summary>
    +           /// <value>
    +           /// <c>true</c> if location information should be included in 
the XML
    +           /// events; otherwise, <c>false</c>.
    +           /// </value>
    +           /// <remarks>
    +           /// <para>
    +           /// If <see cref="LocationInfo" /> is set to <c>true</c>, then 
the file
    +           /// name and line number of the statement at the origin of the 
log
    +           /// statement will be output.
    +           /// </para>
    +           /// <para>
    +           /// If you are embedding this layout within an 
<c>SMTPAppender</c>
    +           /// then make sure to set the <b>LocationInfo</b> option of that
    +           /// appender as well.
    +           /// </para>
    +           /// </remarks>
    +           public bool LocationInfo
    +           {
    +                   get { return m_locationInfo; }
    +                   set { m_locationInfo = value; }
    +           }
    +           /// <summary>
    +           /// The string to replace characters that can not be expressed 
in XML with.
    +           /// <remarks>
    +           /// <para>
    +           /// Not all characters may be expressed in XML. This property 
contains the
    +           /// string to replace those that can not with. This defaults to 
a ?. Set it
    +           /// to the empty string to simply remove offending characters. 
For more
    +           /// details on the allowed character ranges see 
http://www.w3.org/TR/REC-xml/#charsets
    +           /// Character replacement will occur in  the log message, the 
property names
    +           /// and the property values.
    +           /// </para>
    +           /// </remarks>
    +           /// </summary>
    +           public string InvalidCharReplacement
    +           {
    +                   get {return m_invalidCharReplacement;}
    +                   set {m_invalidCharReplacement=value;}
    +           }
    +
    +           /// <summary>
    +           /// The namespace URI to use for the elements and attributes 
written by this layout.
    +           /// </summary>
    +           public virtual string NamespaceUri
    --- End diff --
    
    Wouldn't that make any customization of this class' behavior impossible? 
Should the class be marked sealed?


---

Reply via email to