【问题标题】:How to save CSV logs in Azure AppendBlob如何在 Azure AppendBlob 中保存 CSV 日志
【发布时间】:2016-05-11 01:50:33
【问题描述】:

如何在不影响任何性能的情况下将 csv 日志存储到 Azure AppendBlob?

我将 csv 写入内存流的代码:

public static byte[] WriteCsvWithHeaderToMemory<T>(IEnumerable<T> records) where T : class
{
    var outputFileDescription = new CsvFileDescription
    {
        SeparatorChar = ',',
        EnforceCsvColumnAttribute = true,
    };

    using (var memoryStream = new MemoryStream())
    {
        using (var streamWriter = new StreamWriter(memoryStream))
        {
            var context = new CsvContext();
            context.Write(records, streamWriter, outputFileDescription);
        }
        return memoryStream.ToArray();                
    }
}

谢谢

【问题讨论】:

    标签: c#-4.0 azure-blob-storage linqtocsv


    【解决方案1】:
    public async Task WriteToAudit<T>(T logData)
    {
        var list = new List<T> {logData};
    
        var appendBlob = GetAppendBlobReference();
        appendBlob.FetchAttributes();
    
        var auditDataBytes = WriteCsvWithHeaderToMemory(list,appendBlob.Properties.Length);
    
        using (var stream = new MemoryStream(auditDataBytes))
        {
            await appendBlob.AppendBlockAsync(stream).ConfigureAwait(false);
        }
    }
    
    public static byte[] WriteCsvWithHeaderToMemory<T>(IEnumerable<T> records, long blobSize) where T : class
    {
        var outputFileDescription = new CsvFileDescription
        {
            SeparatorChar = ',',
            EnforceCsvColumnAttribute = true,
            FirstLineHasColumnNames = blobSize <= 0 
        };
    
        using (var memoryStream = new MemoryStream())
        {
            using (var streamWriter = new StreamWriter(memoryStream))
            {
                var context = new CsvContext();
                context.Write(records, streamWriter, outputFileDescription);
            }
            return memoryStream.ToArray();                
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-23
      • 2023-01-29
      • 1970-01-01
      • 1970-01-01
      • 2022-11-03
      • 2018-02-26
      • 1970-01-01
      • 2015-02-04
      相关资源
      最近更新 更多