Что шаблон log4net предоставляет для имени файла без полного пути - PullRequest
5 голосов
/ 25 июля 2011

Мой шаблон преобразования 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 ]

2 голосов
/ 26 июля 2011

Вы можете написать свой собственный конвертер макетов, например, так:

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 голос
/ 24 мая 2012

Не забудьте использовать операторы:

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