我遵循了this教程,并且能够让两个项目都与我的sql server 2012实例一起工作:
但是,当我在我的解决方案中包含 HLogger 项目时(而不是将其与上面的示例项目一起使用),它确实有效。
以下是从提供的示例项目运行它时为我工作的代码段;但是,当我将这个库添加到我自己的解决方案时,它不起作用。
ILog log = log4net.LogManager.GetLogger("NHibernateLogging");
log.Error("Error!", new Exception("Exception123"));
log.Warn("Warning");
什么都没发生。没有抛出任何东西。未填充数据库。我使用的是与提供的文件相同的hibernate.cfg.xml文件(并与“示例项目”一起使用):
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">
NHibernate.Connection.DriverConnectionProvider
</property>
<property name="connection.driver_class">
NHibernate.Driver.SqlClientDriver
</property>
<property name="connection.connection_string">
Server=------.net;database=mydb;user id=myuser;password=sdofjosidfjoijsf;persist security info=true;
</property>
<property name="dialect">
NHibernate.Dialect.MsSql2000Dialect
</property>
<property name="show_sql">
true
</property>
<property name='proxyfactory.factory_class'>NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
</session-factory>
</hibernate-configuration>
仅更改是app.config文件。它曾经是:
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-1.0" />
现在是:
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
原因是我在同一个解决方案中不能有多个版本的log4net,而且由于能够使用msmq记录masstransit的版本2,我无法选择当前的log4net版本。
codeproject站点中的项目是为.NET 3.5创建的,而我的解决方案是.net 4.5。
如何诊断无法在数据库中使用log4net记录任何内容的原因?
答案 0 :(得分:1)
你可以从
开始查看问题是否与Log4Net有关,请尝试为相同的配置添加FileAppender并查看是否有效
如果log4net有效,那么下一步是检查Appender配置,特别是检查类/程序集名称的名称空间