当前位置: 首页 > 编程语言 > C#

C#LearningTutorial-FileLoggingwithlog4netEnabledfromCodeInsteadofConfigurationShare

时间:2023-04-10 11:44:44 C#

FileLoggingEnabledwithlog4netfromCodeInsteadofConfiguration以下测试失败的原因是什么?(它在xunit中)我尝试了不同的附加程序,但它从不写任何东西,尽管日志似乎已经准备好了。我最终创建了自己的appender来测试它。publicclassTestAppender:AppenderSkeleton{publiceventActionAppendCalled=delegate{};protectedoverridevoidAppend(LoggingEventloggingEvent){AppendCalled(loggingEvent);}}publicclassClass1{privateTestAppender_appender=newTestAppender();publicClass1(){log4net.Util.LogLog.InternalDebugging=true;层次结构hierarchy=(Hierarchy)LogManager.GetRepository();记录器rootLogger=hierarchy.Root;rootLogger.Level=Level.All;记录器coreLogger=hierarchy.GetLogger("abc")作为记录器;coreLogger.Level=Level.All;coreLogger.Parent=rootLogger;PatternLayoutpatternLayout=newPatternLayout();patternLayout.ConversionPattern="%logger-%message%newline";patternLayout.ActivateOptions();_appender.Layout=patternLayout;_appender.ActivateOptions();coreLogger.AddAppender(_appender);}[事实]publicvoidTest(){boolcalled=false;_appender.AppendCalled+=e=>called=true;varlog=LogManager.GetLogger("abc");log.Debug("这是一条调试信息");Thread.Sleep(TimeSpan.FromSeconds(2));log.Info("这是一条信息消息");Thread.Sleep(TimeSpan.FromSeconds(2));log.Warn("这是一条警告信息");Thread.Sleep(TimeSpan.FromSeconds(2));log.Error("这是一条错误信息");Assert.True(调用);我总是使用下面的代码从代码中配置log4net好结果!层次结构hierarchy=(Hierarchy)LogManager.GetRepository();hierarchy.Root.RemoveAllAppenders();/*删除任何其他附加程序*/FileAppenderfileAppender=newFileAppender();fileAppender.AppendToFile=true;fileAppender.LockingModel=newFileAppender.MinimalLock();fileAppender.File=Server.MapPath("/")+"log.txt";PatternLayoutpl=newPatternLayout();pl.ConversionPattern="%d[%2%t]%-5p[%-10c]%m%n%n";pl.ActivateOptions();fileAppender.Layout=pl;fileAppender.ActivateOptions();log4net.Config.BasicConfigurator.Configure(fileAppender);//测试记录器ILoglog=LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);log.Debug("测试中!");只是猜测...您的程序集中是否定义了XmlConfiguration?你忘记在你的测试项目中了吗?[assembly:log4net.Config.XmlConfigurator(Watch=true)]这通常偶尔会给我带来麻烦。仍然不能说为什么上面的代码不起作用但是我正确配置了log4net并用我的附加程序替换了所有配置代码:log4net.Config.BasicConfigurator.Configure(_appender);从这里。以上就是C#学习教程:从代码而不是从配置启用log4net文件日志记录分享的全部内容,如果对您有用还需要进一步了解C#学习教程,希望大家多多采纳多多关注~本文来自网络合集,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: