5

我的 log4net 转换模式看起来像这样

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

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

我怎样才能得到文件名(减去路径)。

现在看起来像这样

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

我希望它看起来像

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

谢谢你

4

2 回答 2

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>
于 2011-07-26T07:51:40.023 回答
1

不要忘记这些 using 语句:

using log4net.Layout.Pattern;
using log4net.Core;
于 2012-05-24T15:49:25.353 回答