2017-10-10 6 views
0

私は複数のASP .NET MVCとWeb AziアプリケーションをAzureでホストしています。 私は展開のためにステージとPRODという2つの異なるステージを使用します。基本的には、logs-stageとlogs-PRODという2つの異なるログ用フォルダが必要です。これは、Azureで直接設定されたweb.configとプロパティに基づいてうまく機能しています。Azure Webアプリケーションの削除ログディレクトリのスワップ

問題は、展開するたびにすべての以前のログが削除されることです。どうすればそれを避けることができますか?

私NLogの設定は、次のようになります

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <targets> 
     <target xsi:type="File" name="f" fileName="${basedir}/logs-${appsetting:name=Version:default=DEV}/website.${shortdate}.log" 
     layout="${longdate} ${uppercase:${level}} ${logger} - ${message}" /> 

     <target name="email-Errors" xsi:type="Mail" 
      smtpServer="smtp.sendgrid.net" 
      smtpPort="myPort" 
      enableSsl="false" 
      smtpUsername="myUsername" 
      smtpPassword="myPassword" 
      smtpAuthentication="Basic" 
      from="myEmail" 
      to="${appsetting:name=WEBSITE_EMAIL_DEVELOPERS:default=myEmail}" 
      subject="[${appsetting:name=Version:default=DEV}][WEB][${uppercase:${level}}]" 
      layout="${longdate} ${uppercase:${level}} ${logger} - ${message}" 
      html="false" /> 
    </targets> 

    <rules> 
     <logger name="*" minlevel="Trace" writeTo="f" /> 
     <logger name="*" minlevel="Error" writeTo="email-Errors" /> 
    </rules> 
</nlog> 

答えて

2

問題は、私が展開するたびに、以前のすべてのログが削除されるということです。どうすればそれを避けることができますか?

説明によると、WebAppを公開すると、Azure WebAppで追加のファイルを削除するように見えます。そのような場合は、WebAppの公開中に[追加ファイルを宛先として削除する]チェックボックスをオフにしてください。更新

enter image description here

blogから

を使用すると、スワップ後の製品でnlogを持っているので、もし、私たちは、単にDNSポインタの変更、我々はスロットをスワップする場合ことを知っている可能性があり、その後Nlogファイルがを削除していないステージングスロットにあります。次は、blogのスニペットです。要するに

スワップ操作は2つの展開スロット間のウェブサイトのコンテンツを交換します。

スワップされ、何が、そのスワップがスワップDNSポインタについては、ウェブサイトの内容をコピーするが、より約ではないことに注意されていません。

+0

これにより、公開時にログフォルダが削除されなくなります。私はステージスロットをPRODスロットに交換するので、私はまだ以前のファイルを失っています。 – PMerlet

+0

私は答えを更新しました。 –

関連する問題