我正在使用我的log4net日志记录系统,而且我在查找%logger条目中删除程序集信息的方法时遇到了麻烦。日志记录模式看起来像conversionPattern value="[%60logger]] %message%newline"
,但是当日志中打印出行时,记录器会显示汇编信息,例如Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]
。我认为这是因为记录器是从通用类型创建的,但我不确定。我需要删除该汇编信息,但我不想更改GetLogger
的每个实例。
答案 0 :(得分: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]