c# - MemoryAppender PatternLayout 不渲染?

标签 c# log4net

App.config 看起来像这样:

<appender name="MemoryAppender" type="log4net.Appender.MemoryAppender">
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %-5level - %message" />
  </layout>
</appender>

代码如下所示:

foreach (var ev in events)
{
   string msg = ev.RenderedMessage;
}

ev.RenderedMessage 返回的字符串只是消息,而不是整个模式。我还尝试将 WriteRenderedMessageStringWriter 一起使用,结果是一样的。有没有办法通过应用的模式获取消息?

最佳答案

我找到了:)

var events = _ma.GetEvents();
string result = "";
using (StringWriter writer = new StringWriter())
{
    foreach (var ev in events)
    {
        _ma.Layout.Format(writer, ev);
        writer.Write(Environment.NewLine);
    }
    result = writer.ToString();
}

关于c# - MemoryAppender PatternLayout 不渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14438217/

相关文章:

c# - 检查 PropertyDescriptor 是否有属性

c# - 故障排除 : Why doesn't type inference fail here?

mysql - log4net 到 MySql JSON 数据

asp.net - 像在Elmah中一样从log4net读取日志?

c# - 日志级别 : Would you consider DEBUG finer than TRACE?

c# - 获取登录用户的用户名 ASP.NET MVC

c# - EntityFramework 包版本 ="6.1.3"和 Web 配置版本 6.0.0.0?

c# - 如何使用集合来存储委托(delegate)?

c# - 从 wcf 服务的响应结果生成 xml

c# - log4net - 配置忽略来自特定线程的消息