C# 是否需要创建log4net实例/对象?
我在整个解决方案中使用log4net来满足日志记录需求(它有各种项目,反过来又有各种类) 是否真的需要始终创建这样的实例(也称为对象): 或者我的做法:C# 是否需要创建log4net实例/对象?,c#,logging,log4net,C#,Logging,Log4net,我在整个解决方案中使用log4net来满足日志记录需求(它有各种项目,反过来又有各种类) 是否真的需要始终创建这样的实例(也称为对象): 或者我的做法: private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 使用log4net?有没有其他方法可以替代它,这样我就不必在课堂上做它了
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
使用log4net?有没有其他方法可以替代它,这样我就不必在课堂上做它了,因此需要更少的复制和粘贴:-)?在一个小助手的帮助下:
public static class LogGateway
{
static LogGateway()
{
XmlConfigurator.Configure();
}
public static ILog For( object LoggedObject )
{
if ( LoggedObject != null )
return For( LoggedObject.GetType() );
else
return For( (string)null );
}
public static ILog For( Type ObjectType )
{
if ( ObjectType != null )
return LogManager.GetLogger( ObjectType );
else
return LogManager.GetLogger( string.Empty );
}
public static ILog For( string LoggerName )
{
return LogManager.GetLogger( LoggerName );
}
}
您不需要复制代码,只需将记录器称为:
...
LogGateway.For( this ).Debug( "hello!" ); // instance method
LogGateway.For( typeof( Foo ) ).Debug( "hello!" ); // static method
我认为需要一个小的(助手)类。但我不知道如何实现它。感谢您提供这些代码(片段)。由于这些原因,我现在在文档中找到了信息:。虽然当我现在查看创建实例的原始代码时,我看到了“Ilog”,过了一段时间我可能会找到它。再次感谢你帮我解决这个看似简单的问题。
...
LogGateway.For( this ).Debug( "hello!" ); // instance method
LogGateway.For( typeof( Foo ) ).Debug( "hello!" ); // static method