2

Common.Logging 2.1.1の背後にあるログ ライブラリをlog4net からNLog 2.0に切り替えた後、ASP.NET MVC 2 アプリケーションは正しくログを記録し続けましたが、HttpApplication.Session_Startリクエストごとにメソッドを呼び出し始めました。

File次の構成ファイルでNLog のターゲットを使用しようとしています。

web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <sectionGroup name="common">
            <section
                name="logging"
                type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
        </sectionGroup>
    .
    .
    .
    <configSections>
    .
    .
    .
    <common>
        <logging>
            <factoryAdapter type="Common.Logging.NLog.NLogLoggerFactoryAdapter, Common.Logging.NLog20">
                <arg key="configType" value="FILE" />
                <arg key="configFile" value="~/NLog.config" />
            </factoryAdapter>
        </logging>
    </common>
</configuration>

NLog.config

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <!-- 
    See http://nlog-project.org/wiki/Configuration_file 
    for information on customizing logging rules and outputs.
    -->
    <targets async="true">
        <target
            name="f"
            xsi:type="File"
            fileName="${basedir}/bin/statistics/logs/${shortdate}.log" 
            layout="${longdate}&#009;${uppercase:${level}}&#009;${callsite}&#009;${message}"/>
    </targets>
    <rules>
        <logger name="*" minlevel="Trace" writeTo="f" />
    </rules>
</nlog>

私はすでに次のことを試しました:

  • アプリケーションのデバッグ。CookieはASP.NET_SessionIdサーバーに送信されており、Session.SessionIDプロパティは要求間で変更されていません。
  • Common.Logging - log4net に切り替えて、問題が Common.Logging - NLog に関連していることを確認します。できます。
  • NLog の設定ファイルの targets ノードの属性を省略してasync="true"、NLog の AsyncWrapper を無効にします。うまくいきません。
  • 他の NLog ターゲットを使用して、試しDebuggerてみDatabaseました。できます。

ターゲットを保持する必要があり、FileNLog を使用したいと考えています。

4

0 に答える 0