log4net模式为没有完整路径的文件名提供了什么

时间:2011-07-25 15:37:17

标签: c# log4j log4net log4net-configuration log4cxx

我的log4net转换模式如下所示

<conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" />

%文件在控制台窗口中吐出几乎覆盖整行的完整路径。

如何获取文件名(减去路径)。

现在它看起来像这样

INFO [10] <c:\My Root Dir\Subdir\...........................\filename.cs> - My message

我希望它看起来像

INFO [10] <filename.cs> - My message

谢谢

2 个答案:

答案 0 :(得分:2)

您可以编写自己的图案布局转换器,可能是这样的:

public class FileNamePatternConverter : PatternLayoutConverter
{       
    override protected void Convert(TextWriter writer, LoggingEvent loggingEvent)
    {
        writer.Write(Path.GetFileName(loggingEvent.LocationInformation.FileName));
    }
}

然后按如下方式配置:

<conversionPattern value="%5level [%thread] (%filename:%line) - %message%newline"" />
   <converter>
   <name value="filename" />
   <type value="YourNamespace.FileNamePatternConverter" />
</converter>

答案 1 :(得分:1)

不要忘记这些使用陈述:

using log4net.Layout.Pattern;
using log4net.Core;