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

如何使用log4net在代码中而不是在xml文件中配置NHibernate日志记录?

时间:2023-04-10 17:36:01 C#

如何在代码中使用log4net配置NHibernate日志记录,而不是在xml文件中?依赖于此文档http://nhibernate.info/doc/howto/various/configure-log4net-for-use-with-nhibernate.html,使用XML配置文件通过log4net配置NHibernate日志记录非常容易。但我需要在C#代码中做同样的事情。此答案基于如何从头开始以编程方式配置log4net(无配置)。但是,由于该答案仅提供了根记录器的解决方案,因此我对其进行了一些扩展。//////Log4Net测试///publicstaticvoidTestLog4Net(){//配置log4netConfigureLog4net();ILoglog=LogManager.GetLogger("foo");log.Debug("这不应该出现在日志文件中!");ILoglog2=LogManager.GetLogger("NHibernate.SQL");log2.Debug("这应该只出现在NH日志文件中!");ILoglog3=LogManager.GetLogger("MyProgram");log3.Debug("这应该出现在主程序日志文件中!");}//////配置log4net///publicstaticvoidConfigureLog4net(){Hierarchyhierarchy=(Hierarchy)LogManager.GetRepository();//删除任何其他附加程序hierarchy.Root.RemoveAllAppenders();//为根Logger定义一些基本设置rootLogger=hierarchy.Root;rootLogger.Level=Level.Debug;//声明一个RollingFileAppender,每个文件最大5MB。10个文件RollingFileAppenderappenderNH=newRollingFileAppender();appenderNH.Name="RollingLogFileAppenderNHibernate";appenderNH.AppendToFile=true;appenderNH。最大文件大小="5MB";appenderNH.MaxSizeRollBackups=10;appenderNH.RollingStyle=RollingFileAppender.RollingMode.Size;appenderNH.StaticLogFileName=true;appenderNH.LockingModel=newFileAppender.MinimalLock();appenderNH.File="log-nhibernate.log";appenderNH.Layout=newPatternLayout("%date-%message%newline");//这会激活FileAppender(没有它,不会写入任何内容)appenderNH.ActivateOptions();//这是必需的,以便我们可以使用//LogManager.GetLogger("NHibernate.SQL")访问Logger,它可以被NHibernateLogger使用loggerNH=hierarchy.GetLogger("NHibernate.SQL")asLogger;loggerNH.Level=Level.Debug;loggerNH.AddAppender(appenderNH);//声明RollingFileAppender,每个文件5MB,最大。10个文件RollingFileAppenderappenderMain=newRollingFileAppender();appenderMain.Name="RollingLogFileAppenderMyProgram";appenderMain.AppendToFile=true;appenderMain.MaximumFileSize="5MB";附录rMain.MaxSizeRollBackups=10;appenderMain.RollingStyle=RollingFileAppender.RollingMode.Size;appenderMain.StaticLogFileName=true;appenderMain.LockingModel=newFileAppender.MinimalLock();appenderMain.File="log-MyProgram.log";PatternLayout("%date[%thread]%-5level%logger[%ndc]-%message%newline");//这会激活FileAppender(没有它,不会写入任何内容)appenderMain.ActivateOptions();//这是必需的,以便我们可以使用//LogManager.GetLogger("MyProgram")Loggerlogger=hierarchy.GetLogger("MyProgram")asLogger来访问Logger;logger.Level=Level.Debug;logger.AddAppender(appenderMain);//这需要告诉log4net我们已经完成//配置,因此日志记录可以开始hierarchy.Configured=true;您可以在此处和此处找到有关以编程方式配置log4net的信息。有必要在项目中直接引用log4net程序集,然后编写必要的代码以在应用程序启动时执行(尽可能早)。但问题是为什么要这样做...以上是C#学习教程:HowtoconfigureNHibernateloggingusinglog4netinthecodeinthecode,notinthexmlfile?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: