log4net SDK Reference |

# XmlLayout Class

Layout that formats the log events as XML elements.

For a list of all members of this type, see XmlLayout Members.

System.Object
log4net.Layout.LayoutSkeleton
log4net.Layout.XmlLayoutBase
log4net.Layout.XmlLayout

[Visual Basic]
Public Class XmlLayout
Inherits XmlLayoutBase
[C#]
public class XmlLayout : XmlLayoutBase

#### Thread Safety

This type is not safe for multithreaded operations.

#### Remarks

The output of the XmlLayout consists of a series of log4net:event elements. It does not output a complete well-formed XML file. The output is designed to be included as an external entity in a separate file to form a correct XML file.

For example, if `abc` is the name of the file where the XmlLayout output goes, then a well-formed XML file would be:

    [XML]
    <?xml version="1.0" ?>

    <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]>

    <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2>
        &data;
    </log4net:events>

This approach enforces the independence of the XmlLayout and the appender where it is embedded.

The `version` attribute helps components to correctly interpret output generated by XmlLayout. The value of this attribute should be "1.2" for release 1.2 and later.

Alternatively the `Header` and `Footer` properties can be configured to output the correct XML header, open tag and close tag. When setting the `Header` and `Footer` properties it is essential that the underlying data store not be appendable otherwise the data will become invalid XML.

#### Requirements

Namespace: log4net.Layout

Assembly: log4net (in log4net.dll)

#### See Also

XmlLayout Members | log4net.Layout Namespace