1
我已經使用此post創建了自定義xml佈局。我需要日誌消息字符<
但在日誌文件中它轉換爲<
這是我的代碼示例使用log4net在日誌文件中寫入原始文本
public class MyXmlLayout : XmlLayoutBase
{
protected override void FormatXml(XmlWriter writer, LoggingEvent loggingEvent)
{
writer.WriteStartElement("LogEntry");
writer.WriteStartElement("Exception");
writer.WriteString("<![CDATA[\n" + loggingEvent.GetExceptionString() + "\n]]>");
writer.WriteEndElement();
writer.WriteEndElement();
}
}
輸出日誌文件
<LogEntry>
<Exception><![CDATA[
System.DivideByZeroException: Attempted to divide by zero.
at ConsoleApplication5.Program.Main(String[] args) in c:\Users\MahendranM\Documents\Visual Studio 2013\Projects\ConsoleApplication5\ConsoleApplication5\Program.cs:line 24
]]>
</Exception>
</LogEntry>
如何打印原始字符像log4net的<,>
?
使用CData是個壞主意,但默認log4net只是在寫入長的異常消息時做同樣的事情。 – Mahendran
@Mahendran:這並不意味着你必須這樣做,但...(如果它*使用CData,希望它正在處理']]>問題......) –
使用writer.WriteCData線索當文本包含']]>時出現異常。 – Mahendran