CSharpAtl,
, Log4net? . / wiki .
DI/Log4net .
, , , "logger", - :
public class Foo
{
private ILogger logger;
public Foo(ILogger logger)
{
this.logger = logger;
}
public DoSomeWork(int xyz)
{
logger.Info("xyz = {0}", xyz);
}
}
- Log4net ( NLog , , ), :
public class Foo
{
private static ILogger logger =
LogManager.GetLogger(
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public Foo()
{
}
public DoSomeWork(int xyz)
{
logger.Info("xyz = {0}", xyz);
}
}
, , Foo, , ? , , . , (, "DatabaseAccess", "AppStartup", "AppShutdown" ..), .
"Logger" ( ) "LogManager" ( Log4net LogManager), - ? DI " " ? , Unity - , .
, "LogManager" :
public class Foo
{
private static ILogger logger;
public Foo(ILogManager logManager)
{
logger = logManager.GetLogger
(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
if (logger = null)
{
logManager.GetLogger
(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
}
}
public DoSomeWork(int xyz)
{
logger.Info("xyz = {0}", xyz);
}
}
, - ILogManager ( Log4net LogManager) , ILogger, - , DI , ILogger .
DI .NET( , # .NET ). - VB6 + V++ 6.
...
...
SO , AutoFac, , DI. , , - , -, , this, ( ). , , , , AutoFac, (, Log4Net NLog).
...