使用Castle Windsor、伐木设施和log4net进行伐木
我的代码是: log4net.config使用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
<?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
设置为依赖项即可