日志记录不适用于 Azure 中的克隆环境
Logging not working on cloned environment in Azure
尝试在 devops stackexchange 上记录这个,但没有任何乐趣 - 所以在这里问。
我通过克隆应用程序插槽、SQL 数据库和存储资源、修改相关的连接字符串和配置参数(已验证)并且所有这些都适用于新的隔离环境。
除了一件事 - blob 日志记录。
我们编写了一个使用 Azure.Storage.Blobs.AzureBlobClient
的应用程序 - 它采用从 Azure 门户提取的连接参数并下载文件。这连接正常并下载了一组 .csv 文件,但不是包含我们的应用程序日志记录的常用 .txt 文件。对于使用相同实际应用程序的其他环境,日志记录可用。
还需要注意的是,当通过 FTP 连接以查看站点文件夹时,LogFiles 文件夹的应用程序子文件夹不存在。
“应用服务日志”和链接的“存储容器”下的所有设置 - 这些都是相同的(但不是同一个存储容器)。
这里还有什么原因?
抓取日志的代码如下:
var blobServiceClient = new BlobServiceClient(ConnectionString);
var container = blobServiceClient.GetBlobContainerClient(ContainerName);
var blobs = container.GetBlobs(prefix: $"appname/{now.Year}/{ZeroPad2(now.Month)}/{ZeroPad2(now.Day)}");
foreach (var blob in blobs)
{
var parts = blob.Name.Split('/');
var nameEnd = parts[parts.Length - 2] + "_" + parts[parts.Length - 1];
var outFileName = Path.Combine(fileOutDir, nameEnd);
if (File.Exists(outFileName))
{
File.Delete(outFileName);
}
var a = new BlobBaseClient(ConnectionString, ContainerName, blob.Name);
using (var fileStream = File.Create(outFileName))
{
a.DownloadTo(fileStream);
}
为了帮助任何必须解决此问题的人,在 Azure 门户级别,添加 Azure 日志记录的站点扩展包。
尝试在 devops stackexchange 上记录这个,但没有任何乐趣 - 所以在这里问。
我通过克隆应用程序插槽、SQL 数据库和存储资源、修改相关的连接字符串和配置参数(已验证)并且所有这些都适用于新的隔离环境。
除了一件事 - blob 日志记录。
我们编写了一个使用 Azure.Storage.Blobs.AzureBlobClient
的应用程序 - 它采用从 Azure 门户提取的连接参数并下载文件。这连接正常并下载了一组 .csv 文件,但不是包含我们的应用程序日志记录的常用 .txt 文件。对于使用相同实际应用程序的其他环境,日志记录可用。
还需要注意的是,当通过 FTP 连接以查看站点文件夹时,LogFiles 文件夹的应用程序子文件夹不存在。
“应用服务日志”和链接的“存储容器”下的所有设置 - 这些都是相同的(但不是同一个存储容器)。
这里还有什么原因?
抓取日志的代码如下:
var blobServiceClient = new BlobServiceClient(ConnectionString);
var container = blobServiceClient.GetBlobContainerClient(ContainerName);
var blobs = container.GetBlobs(prefix: $"appname/{now.Year}/{ZeroPad2(now.Month)}/{ZeroPad2(now.Day)}");
foreach (var blob in blobs)
{
var parts = blob.Name.Split('/');
var nameEnd = parts[parts.Length - 2] + "_" + parts[parts.Length - 1];
var outFileName = Path.Combine(fileOutDir, nameEnd);
if (File.Exists(outFileName))
{
File.Delete(outFileName);
}
var a = new BlobBaseClient(ConnectionString, ContainerName, blob.Name);
using (var fileStream = File.Create(outFileName))
{
a.DownloadTo(fileStream);
}
为了帮助任何必须解决此问题的人,在 Azure 门户级别,添加 Azure 日志记录的站点扩展包。