gpt4 book ai didi

asp.net - Azure Web应用程序删除交换上的日志目录

转载 作者:行者123 更新时间:2023-12-03 05:52:06 25 4
gpt4 key购买 nike

我在 Azure 上托管了多个 ASP .NET MVC 和 Web Api 应用程序。我使用两个不同的阶段进行部署:stage 和 PROD。基本上,我想要有两个不同的日志文件夹:logs-stage 和logs-PROD。根据我的 web.config 和直接在 Azure 中设置的属性,此方法运行良好。

问题是每次部署时,所有以前的日志都会被删除。我怎样才能避免这种情况?

我的 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>

最佳答案

The issue is that each time I deploy, all the previous logs are deleted. How can I avoid that ?

根据您的描述,似乎当您发布 WebApp 时,会删除 Azure WebApp 中的其他文件。如果是这种情况,请尝试在发布 Web 应用程序期间取消选中[删除作为目标的其他文件]选项。

enter image description here

更新:

来自blog ,我们可以知道,如果我们交换插槽,只是 DNS 指针发生变化,因此如果交换后的产品中有 nlog,那么 Nlog 文件位于未删除的暂存插槽中。以下片段来自 blog .

In short, the Swap operation will exchange the website's content between 2 deployment slots.

Swapped and what is not but note that swap is not about copying the content of the website but more about swapping DNS pointers.

关于asp.net - Azure Web应用程序删除交换上的日志目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46661177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com