2

構成ファイルからプログラムで log4net ログを作成しました。

var properties = new NameValueCollection
            {
                {"configType", "FILE"},
                {"configFile", @"c:/log4net.config"}
            };
Common.Logging.LogManager.Adapter = new Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter(properties);

これは私のですlog4net.config (鳩が提案したように簡単にするために編集されました)

<log4net>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
    <file value="c:/log.log" />
    <appendToFile value="true" />
    <maximumFileSize value="100KB" />
    <maxSizeRollBackups value="5" />

    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%d [%t] %-5p %c - %m%n" />
    </layout>
</appender>

<root>
    <level value="All" />
    <appender-ref ref="RollingFile" />  
</root> 
<logger name="NHibernate">
    <level value="All" />
    <appender-ref ref="RollingFile" />
</logger>       

</log4net>

Spring.NET はそのファイルに正常にログインしましたが、NHibernate にはログインできませんでした。Nhibernate は流暢に設定されます:

protected override void PostProcessConfiguration(Configuration config)
{           
    base.PostProcessConfiguration(config);
        var msSqlCfg = MsSqlConfiguration.MsSql2000.ConnectionString(ConnectionString)
            .ShowSql();

        Fluently.Configure(config).Database(msSqlCfg)
                .Mappings(m => m.FluentMappings.Add<EmployeeMap>())
                // Other mappings            
                .BuildSessionFactory();
    }

Nhibernate ログを機能させるには何を修正すればよいですか?

4

1 に答える 1

2

統計を生成するとログに記録されますか?

Configuration.ExposeConfiguration(c => 
            c.SetProperty("generate_statistics", "true"));

物事を絞り込むには、ロガー内から加法フラグとアペダーを削除し、1つだけをログに記録して開始できます。つまり、このように正確に

<logger name="NHibernate">
  <level value="ALL" />
</logger>
于 2013-08-26T10:45:01.113 に答える