2017-08-04 67 views
0

我正在處理我的log4net日誌記錄系統,並且無法找到擺脫%logger條目中程序集信息的方法。日誌記錄模式看起來像這樣conversionPattern value="[%60logger]] %message%newline",但是當在日誌中打印輸出行時,記錄器顯示彙編信息,例如Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]。我相信這是由於記錄器是從泛型創建的事實造成的,但我不確定。我需要擺脫該彙編信息,但我不想更改GetLogger的每個實例。從log4net中的記錄器名稱中刪除程序集信息

回答

2

%記錄器應打印輸出記錄器的名稱,僅當該名稱包含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]