5

私のlog4net変換パターンは次のようになります

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

%fileは、コンソールウィンドウのほぼ1行をカバーするフルパスを吐き出します。

ファイル名(マイナスパス)だけを取得するにはどうすればよいですか。

今はこんな感じ

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 に答える