使用Castle Windsor、伐木设施和log4net进行伐木

使用Castle Windsor、伐木设施和log4net进行伐木,log4net,castle-windsor,Log4net,Castle Windsor,我的代码是: log4net.config <?xml version="1.0" encoding="utf-8" ?> <configuration> <log4net> <appender name="MyLog" type="log4net.Appender.RollingFileAppender"> <file value="logs\log-file.txt" /> <appendT

我的代码是:

log4net.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <log4net>
    <appender name="MyLog" type="log4net.Appender.RollingFileAppender">
      <file value="logs\log-file.txt" />
      <appendToFile value="true" />
      <maximumFileSize value="100KB" />
      <maxSizeRollBackups value="2" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%level %thread %logger - %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="ALL" />
      <appender-ref ref="MyWayLog" />
    </root>
  </log4net>
</configuration>

LoggerInstaler.cs

public class LoggerInstaller : IWindsorInstaller
{
    public void Install(IWindsorContainer container, IConfigurationStore store)
    {
        container.AddFacility<LoggingFacility>(f => f.UseLog4Net().WithConfig("log4net.config"));
    }
}
公共类日志安装程序:IWindsorInstaller
{
public void安装(IWindsorContainer、IConfigurationStore)
{
container.AddFacility(f=>f.UseLog4Net().WithConfig(“log4net.config”);
}
}
MyLogger.cs

private static ILoggerFactory loggera = IoC.Container.Resolve<ILoggerFactory>();

private static ILogger logger = loggera.Create("MyLog"); 

public static ILogger Log
{
    get { return logger; }
    set { logger = value; }
}
private static ILoggerFactory loggera=IoC.Container.Resolve();
专用静态ILogger logger=loggera.Create(“MyLog”);
公共静态ILogger日志
{
获取{return logger;}
设置{logger=value;}
}
当我使用
Log.Error(“某些异常”)

在日志文件中,我有来自其他dll的其他日志。我只需要我的日志,而不需要其他dll异常,只需要显式地从调用(Log.Error)中获取

<logger name="MyLog"> 

而不是

<root> 

在log4net.config中

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <log4net>
    <appender name="MyLog" type="log4net.Appender.RollingFileAppender">
      <file value="logs\log-file.txt" />
      <appendToFile value="true" />
      <maximumFileSize value="100KB" />
      <maxSizeRollBackups value="2" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%level %thread %logger - %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="ALL" />
      <appender-ref ref="MyWayLog" />
    </root>
  </log4net>
</configuration>
您也可以在温莎地区使用ToLog方法

container.AddFacility<LoggingFacility>(f => f.UseLog4Net().WithConfig("log4net.config").ToLog("MyLog"));
container.AddFacility(f=>f.UseLog4Net().WithConfig(“log4net.config”).ToLog(“MyLog”);
不确定你的MyLogger.cs:由于温莎的设施,应该没有这个必要。。。 需要时,只需将
ILogger
设置为依赖项即可