asp.net - 如何关闭 INFO 级别的 NHibernate 日志记录?

标签 asp.net nhibernate log4net

我在我的项目中将 NHibernate 和 Net Persistence API 与 C# 和 MySql 数据库一起使用,并且我有 UI 层 (ASP.NET)、业务层和数据访问层 (DAL)。对于日志记录,我使用的是 log4net。

我的 UI 层中有 web.config 文件,我在其中放置了以下代码行以禁用 NHibernate INFO 级别的日志记录:

<log4net debug="true">
        <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
            <file value="Log.txt"/>
            <appendToFile value="true"/>
            <rollingStyle value="Date"/>
            <datePattern value="dd-MM-yyyy"/>
            <maxSizeRollBackups value="20"/>
            <maximumFileSize value="50MB"/>
            <staticLogFileName value="true"/>
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n"/>
            </layout>
        </appender>
        <root>
            <logger name="NHibernate" additivity="false">
                <level value="WARN"/>
                <appender-ref ref="RollingFileAppender"/>
            </logger>
            <level value="INFO"/>
            <appender-ref ref="RollingLogFileAppender"/>            
        </root>
    </log4net>

但是没有效果!我仍然可以看到 INFO 级别的日志,日志中的一些行是:

INFO  2013-01-09 01:15:06,383  6993ms Environment            lambda_method      - NHibernate 3.2.0.4000 (3.2.0.4000)
INFO  2013-01-09 01:15:06,386  6996ms Environment            lambda_method      - hibernate-configuration section not found in application configuration file
INFO  2013-01-09 01:15:06,387  6997ms Environment            lambda_method      - Bytecode provider name : lcg
INFO  2013-01-09 01:15:06,388  6998ms Environment            lambda_method      - Using reflection optimizer
INFO  2013-01-09 01:15:07,171  7781ms Dialect                lambda_method      - Using dialect: NHibernate.Dialect.MySQLDialect
INFO  2013-01-09 01:15:07,390  8000ms Dialect                lambda_method      - Using dialect: NHibernate.Dialect.MySQLDialect
INFO  2013-01-09 01:15:07,407  8017ms Mappings               lambda_method      - duplicate import: JDAL.Impl.Entities.EntityName, JDAL, Version=1.0.0.0,

最佳答案

logger 节点不正确。以这种方式尝试:

<root>
   <level value="INFO"/>
   <appender-ref ref="RollingLogFileAppender"/>            
</root>
<logger name="NHibernate" additivity="false">
    <level value="WARN"/>
    <appender-ref ref="RollingFileAppender"/>
</logger>

关于asp.net - 如何关闭 INFO 级别的 NHibernate 日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14230536/

相关文章:

nhibernate - 对可选引用进行 QueryOver 和 null 检查

c# - 使用 Log4net 实现彩色日志

c# - HttpRequest 与 HttpWebRequest

jquery - '数据:image/jpg;base64' and jQuery image preview in Internet Explorer

c# - 使用 GhostScript 将 pdf 转换为图像 - 如何引用 gsdll32.dll?

linq - 将 Linq 表达式组合到 Func 时遇到问题

linq - NHibernate.Linq赞

asp.net - 升级到Visual Studio 2010后找不到System.Web.Script.Service命名空间错误

c# - 什么时候配置 Log4Net?

asp.net - NHibernate 的 log4net 未将任何内容写入 ASP.NET 跟踪