2017-08-04 4 views
0

log4netログシステムで作業していますが、%loggerエントリにアセンブリ情報を取り除く方法がわかりません。ロギングパターンはconversionPattern value="[%60logger]] %message%newline"のようになりますが、ログにログが出力されると、ロガーにはVersion=1.0.0.0, Culture=neutral, PublicKeyToken=null]などのアセンブリ情報が表示されます。これは、ロガーがジェネリックタイプから作成されているという事実によって引き起こされていると確信していますが、わかりません。そのアセンブリ情報を取り除く必要がありますが、私はGetLoggerのすべてのインスタンスを変更したくありません。log4netのlogger名からアセンブリ情報を削除する

答えて

2

%loggerは、その名前にVersion=1.0.0.0, Culture=neutral, PublicKeyToken=nullも含まれている場合にのみ、出力します。あなたのロガーを取得するとき、あなたは何をすべきか確認してください:

LogManager.GetLogger(typeof(Program).FullName); //Gives name + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 

あなたは型名をしたい場合は、何かをするように:名前を参照するには

LogManager.GetLogger(typeof(Program); //Gives name only 

テストプログラムが返さ:

class Program 
{ 
    static void Main(string[] args) 
    { 
     Console.WriteLine(typeof(GenericClass<Program>)); 
     Console.WriteLine(typeof(GenericClass<Program>).Name); 
     Console.WriteLine(typeof(GenericClass<Program>).FullName); 
     Console.WriteLine(typeof(GenericClass<Program>).ToString()); 
     Console.ReadKey(); 
    } 

    class GenericClass<T> { } 
} 

出力:

ConsoleApp2.Program+GenericClass`1[ConsoleApp2.Program] 
GenericClass`1 
ConsoleApp2.Program+GenericClass`1[[ConsoleApp2.Program, ConsoleApp2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] 
ConsoleApp2.Program+GenericClass`1[ConsoleApp2.Program] 
関連する問題