C# 以编程方式设置NLog目标属性

C# 以编程方式设置NLog目标属性,c#,nlog,C#,Nlog,我正在使用。我的配置如下:, 我不想将存储密钥放入目标。相反,我将从应用程序设置中使用它,以便我可以在部署环境中设置Azure网站“应用程序设置”。如何以编程方式为此目标设置connectionString <nlog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform" xmlns="http://

我正在使用。我的配置如下:, 我不想将存储密钥放入目标。相反,我将从应用程序设置中使用它,以便我可以在部署环境中设置Azure网站“应用程序设置”。如何以编程方式为此目标设置
connectionString

 <nlog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"
   xmlns="http://www.nlog-project.org/schemas/NLog.xsd">

弄明白怎么做了

    public NLogService()
    {
        var config = new LoggingConfiguration();
        var azureBlobTarget = new AzureAppendBlobTarget();
        config.AddTarget("azureAppender", azureBlobTarget);

        azureBlobTarget.BlobName = "${date:format=yyyy-MM-dd}.log";  
        azureBlobTarget.ConnectionString = "DefaultEndpointsProtocol=https;AccountName=mylogs;AccountKey=xxx";
        azureBlobTarget.Container = "myapp";
        azureBlobTarget.Layout = @"${longdate} ${level:uppercase=true} - ${message}";            

        var rule1 = new LoggingRule("*", LogLevel.Debug, azureBlobTarget);
        config.LoggingRules.Add(rule1);

        // Step 5. Activate the configuration
        LogManager.Configuration = config;
    }
建议的方法是:

var azureBlobTarget = LogManager.Configuration.FindTargetByName<AzureAppendBlobTarget>("azure");
azureBlobTarget.ConnectionString = "DefaultEndpointsProtocol=https;AccountName=mylogs;AccountKey=xxx";
var azureBlobTarget=LogManager.Configuration.FindTargetByName(“azure”);
azureBlobTarget.ConnectionString=“DefaultEndpointsProtocol=https;AccountName=mylogs;AccountKey=xxx”;
如果NLog配置了xml文件,这也适用

    public NLogService()
    {
        var config = new LoggingConfiguration();
        var azureBlobTarget = new AzureAppendBlobTarget();
        config.AddTarget("azureAppender", azureBlobTarget);

        azureBlobTarget.BlobName = "${date:format=yyyy-MM-dd}.log";  
        azureBlobTarget.ConnectionString = "DefaultEndpointsProtocol=https;AccountName=mylogs;AccountKey=xxx";
        azureBlobTarget.Container = "myapp";
        azureBlobTarget.Layout = @"${longdate} ${level:uppercase=true} - ${message}";            

        var rule1 = new LoggingRule("*", LogLevel.Debug, azureBlobTarget);
        config.LoggingRules.Add(rule1);

        // Step 5. Activate the configuration
        LogManager.Configuration = config;
    }
var azureBlobTarget = LogManager.Configuration.FindTargetByName<AzureAppendBlobTarget>("azure");
azureBlobTarget.ConnectionString = "DefaultEndpointsProtocol=https;AccountName=mylogs;AccountKey=xxx";