Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否需要创建log4net实例/对象?_C#_Logging_Log4net - Fatal编程技术网

C# 是否需要创建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?有没有其他方法可以替代它,这样我就不必在课堂上做它了

我在整个解决方案中使用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