15
A
回答
28
由于suggested通过MrPeregrination你需要写一个类从XmlLayoutBase派生,重写FormatXml方法,并指示您的appender使用它作为布局:
class Program
{
static void Main(string[] args)
{
XmlConfigurator.Configure();
ILog log = log4net.LogManager.GetLogger(typeof(Program));
log.Debug("Hello world");
}
}
public class MyXmlLayout : XmlLayoutBase
{
protected override void FormatXml(XmlWriter writer, LoggingEvent loggingEvent)
{
writer.WriteStartElement("LogEntry");
writer.WriteStartElement("Message");
writer.WriteString(loggingEvent.RenderedMessage);
writer.WriteEndElement();
writer.WriteEndElement();
}
}
而且在app.config中把这个:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
<param name="File" value="log.txt" />
<param name="AppendToFile" value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="MyNamespace.MyXmlLayout" />
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
</root>
</log4net>
</configuration>
这将产生这样的条目在日志文件中:
<LogEntry><Message>Hello world</Message></LogEntry>
3
查看XmlLayoutBase类。我认为这可能是你需要的。有一个FormatXML函数需要重写,以向XmlWriter提供格式正确的数据。
+0
请问我有更多的细节吗? – 2009-07-18 14:29:15
相关问题
- 1. testdriven.net log4net控制台输出
- 2. Log4Net配置XML
- 3. Log4Net没有写入输出文件
- 4. 对Log4Net输出结构的建议
- 5. 在log4j/log4net中捕获标准输出
- 6. 带XML的PHP XML输出?
- 7. Fitnesse的XML输入/输出
- 8. Log4Net&RollingFileAppender生成Xml文件
- 9. 乱码XML输出
- 10. XML输出(UTF-8)
- 11. XML/XSLT输出对
- 12. XML输出在SQL
- 13. 输出图为`.xml`
- 14. 制作XML输出
- 15. 用Freemarker输出XML
- 16. XML输出提要
- 17. WorkerRole log4net跟踪appender日志不出现在输出窗口
- 18. 需要执行XML输入和XSL的输出以创建XML输出
- 19. XML/PHP读取XML,解析,输出
- 20. XML编码:XML注入到输出
- 21. SSIS输出参数和XML
- 22. T-SQL和XML输出
- 23. 定制JAXB XML输出
- 24. PHP - 格式化XML输出
- 25. 丑陋的XML输出
- 26. 转换XML输出为varchar
- 27. PHP - > XML输出是IE
- 28. FOSRestBundle输出错误的XML
- 29. 生成输出XML子句
- 30. 输出XML中使用PHP
达林,非常感谢你,终于到底了,但你能告诉我,我是否需要在自己的类库,应用程序类库或log4net类库中重新定制这个自定义布局库(重新编译)? – 2009-07-18 15:50:58