Skip to content

Commit 24f933a

Browse files
committed
application insights implementation
1 parent 3abe78e commit 24f933a

File tree

71 files changed

+1391
-253
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+1391
-253
lines changed

src/WebJobs.Script.Host/WebJobs.Script.Host.csproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,12 @@
173173
<HintPath>..\..\packages\Microsoft.Data.Services.Client.5.8.1\lib\net40\Microsoft.Data.Services.Client.dll</HintPath>
174174
<Private>True</Private>
175175
</Reference>
176+
<Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions, Version=1.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
177+
<HintPath>..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.1.1.0\lib\netstandard1.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
178+
</Reference>
179+
<Reference Include="Microsoft.Extensions.Logging, Version=1.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
180+
<HintPath>..\..\packages\Microsoft.Extensions.Logging.1.1.1\lib\netstandard1.1\Microsoft.Extensions.Logging.dll</HintPath>
181+
</Reference>
176182
<Reference Include="Microsoft.Extensions.Logging.Abstractions, Version=1.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
177183
<HintPath>..\..\packages\Microsoft.Extensions.Logging.Abstractions.1.1.1\lib\netstandard1.1\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
178184
<Private>True</Private>

src/WebJobs.Script.Host/packages.config

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
<package id="Microsoft.Data.Edm" version="5.8.1" targetFramework="net46" />
3535
<package id="Microsoft.Data.OData" version="5.8.1" targetFramework="net46" />
3636
<package id="Microsoft.Data.Services.Client" version="5.8.1" targetFramework="net46" />
37+
<package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="1.1.0" targetFramework="net46" />
38+
<package id="Microsoft.Extensions.Logging" version="1.1.1" targetFramework="net46" />
3739
<package id="Microsoft.Extensions.Logging.Abstractions" version="1.1.1" targetFramework="net46" />
3840
<package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net46" />
3941
<package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="net46" />
@@ -52,6 +54,7 @@
5254
<package id="System.AppContext" version="4.3.0" targetFramework="net46" />
5355
<package id="System.Collections" version="4.3.0" targetFramework="net46" />
5456
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net46" />
57+
<package id="System.ComponentModel" version="4.3.0" targetFramework="net46" />
5558
<package id="System.Console" version="4.3.0" targetFramework="net46" />
5659
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net46" />
5760
<package id="System.Diagnostics.DiagnosticSource" version="4.3.0" targetFramework="net46" />

src/WebJobs.Script.WebHost/App_Start/AutofacBootstrap.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using Microsoft.Azure.WebJobs.Script.Config;
77
using Microsoft.Azure.WebJobs.Script.Diagnostics;
88
using Microsoft.Azure.WebJobs.Script.WebHost.WebHooks;
9+
using Microsoft.Extensions.Logging;
910

1011
namespace Microsoft.Azure.WebJobs.Script.WebHost
1112
{
@@ -26,6 +27,7 @@ internal static void Initialize(ScriptSettingsManager settingsManager, Container
2627
builder.Register<WebScriptHostManager>(ct => ct.Resolve<WebHostResolver>().GetWebScriptHostManager(settings)).ExternallyOwned();
2728
builder.Register<WebHookReceiverManager>(ct => ct.Resolve<WebHostResolver>().GetWebHookReceiverManager(settings)).ExternallyOwned();
2829
builder.Register<HostPerformanceManager>(ct => ct.Resolve<WebHostResolver>().GetPerformanceManager(settings)).ExternallyOwned();
30+
builder.Register<ILoggerFactory>(ct => ct.ResolveOptional<WebScriptHostManager>()?.Instance.ScriptConfig.HostConfig.LoggerFactory).ExternallyOwned();
2931
builder.RegisterInstance(settings);
3032
}
3133
}

src/WebJobs.Script.WebHost/Controllers/AdminController.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,12 @@
1414
using System.Web.Http.Controllers;
1515
using Microsoft.Azure.WebJobs.Extensions.Http;
1616
using Microsoft.Azure.WebJobs.Host;
17+
using Microsoft.Azure.WebJobs.Host.Config;
1718
using Microsoft.Azure.WebJobs.Script.Config;
1819
using Microsoft.Azure.WebJobs.Script.Description;
1920
using Microsoft.Azure.WebJobs.Script.WebHost.Filters;
2021
using Microsoft.Azure.WebJobs.Script.WebHost.Models;
22+
using Microsoft.Extensions.Logging;
2123
using Newtonsoft.Json;
2224

2325
namespace Microsoft.Azure.WebJobs.Script.WebHost.Controllers
@@ -33,12 +35,14 @@ public class AdminController : ApiController
3335
private readonly WebScriptHostManager _scriptHostManager;
3436
private readonly WebHostSettings _webHostSettings;
3537
private readonly TraceWriter _traceWriter;
38+
private readonly ILogger _logger;
3639

37-
public AdminController(WebScriptHostManager scriptHostManager, WebHostSettings webHostSettings, TraceWriter traceWriter)
40+
public AdminController(WebScriptHostManager scriptHostManager, WebHostSettings webHostSettings, TraceWriter traceWriter, ILoggerFactory loggerFactory)
3841
{
3942
_scriptHostManager = scriptHostManager;
4043
_webHostSettings = webHostSettings;
4144
_traceWriter = traceWriter.WithSource($"{ScriptConstants.TraceSourceHostAdmin}.Api");
45+
_logger = loggerFactory?.CreateLogger(ScriptConstants.LogCategoryAdminController);
4246
}
4347

4448
[HttpPost]
@@ -125,7 +129,9 @@ public IHttpActionResult GetHostStatus()
125129
};
126130
}
127131

128-
_traceWriter.Info($"Host Status: {JsonConvert.SerializeObject(status, Formatting.Indented)}");
132+
string message = $"Host Status: {JsonConvert.SerializeObject(status, Formatting.Indented)}";
133+
_traceWriter.Info(message);
134+
_logger?.LogInformation(message);
129135

130136
return Ok(status);
131137
}

src/WebJobs.Script.WebHost/Controllers/KeysController.cs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
using Microsoft.Azure.WebJobs.Script.WebHost.Filters;
1313
using Microsoft.Azure.WebJobs.Script.WebHost.Models;
1414
using Microsoft.Azure.WebJobs.Script.WebHost.Properties;
15+
using Microsoft.Extensions.Logging;
1516

1617
namespace Microsoft.Azure.WebJobs.Script.WebHost.Controllers
1718
{
@@ -25,12 +26,14 @@ public class KeysController : ApiController
2526
private readonly WebScriptHostManager _scriptHostManager;
2627
private readonly ISecretManager _secretManager;
2728
private readonly TraceWriter _traceWriter;
29+
private readonly ILogger _logger;
2830

29-
public KeysController(WebScriptHostManager scriptHostManager, ISecretManager secretManager, TraceWriter traceWriter)
31+
public KeysController(WebScriptHostManager scriptHostManager, ISecretManager secretManager, TraceWriter traceWriter, ILoggerFactory loggerFactory)
3032
{
3133
_scriptHostManager = scriptHostManager;
3234
_secretManager = secretManager;
3335
_traceWriter = traceWriter.WithSource($"{ScriptConstants.TraceSourceSecretManagement}.Api");
36+
_logger = loggerFactory?.CreateLogger(ScriptConstants.LogCategoryKeysController);
3437
}
3538

3639
[HttpGet]
@@ -132,7 +135,9 @@ private async Task<IHttpActionResult> AddOrUpdateSecretAsync(string keyName, str
132135
operationResult = await _secretManager.AddOrUpdateFunctionSecretAsync(keyName, value, keyScope, secretsType);
133136
}
134137

135-
_traceWriter.VerboseFormat(Resources.TraceKeysApiSecretChange, keyName, keyScope ?? "host", operationResult.Result);
138+
string message = string.Format(Resources.TraceKeysApiSecretChange, keyName, keyScope ?? "host", operationResult.Result);
139+
_traceWriter.Verbose(message);
140+
_logger?.LogDebug(message);
136141

137142
switch (operationResult.Result)
138143
{
@@ -186,7 +191,9 @@ private async Task<IHttpActionResult> DeleteFunctionSecretAsync(string keyName,
186191
return NotFound();
187192
}
188193

189-
_traceWriter.VerboseFormat(Resources.TraceKeysApiSecretChange, keyName, keyScope ?? "host", "Deleted");
194+
string message = string.Format(Resources.TraceKeysApiSecretChange, keyName, keyScope ?? "host", "Deleted");
195+
_traceWriter.VerboseFormat(message);
196+
_logger?.LogDebug(message);
190197

191198
return StatusCode(HttpStatusCode.NoContent);
192199
}

src/WebJobs.Script.WebHost/Controllers/SwaggerController.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using Microsoft.Azure.WebJobs.Host;
99
using Microsoft.Azure.WebJobs.Script.WebHost.Filters;
1010
using Microsoft.Azure.WebJobs.Script.WebHost.Properties;
11+
using Microsoft.Extensions.Logging;
1112
using Newtonsoft.Json.Linq;
1213

1314
namespace Microsoft.Azure.WebJobs.Script.WebHost.Controllers
@@ -18,19 +19,22 @@ public class SwaggerController : ApiController
1819
private readonly ISwaggerDocumentManager _swaggerDocumentManager;
1920
private readonly WebScriptHostManager _scriptHostManager;
2021
private readonly TraceWriter _traceWriter;
22+
private readonly ILogger _logger;
2123

22-
public SwaggerController(ISwaggerDocumentManager swaggerDocumentManager, WebScriptHostManager scriptHostManager, TraceWriter traceWriter)
24+
public SwaggerController(ISwaggerDocumentManager swaggerDocumentManager, WebScriptHostManager scriptHostManager, TraceWriter traceWriter, ILoggerFactory loggerFactory)
2325
{
2426
_swaggerDocumentManager = swaggerDocumentManager;
2527
_scriptHostManager = scriptHostManager;
2628
_traceWriter = traceWriter.WithSource($"{ScriptConstants.TraceSourceSwagger}.Api");
29+
_logger = loggerFactory?.CreateLogger(ScriptConstants.LogCategorySwaggerController);
2730
}
2831

2932
[HttpGet]
3033
[Route("admin/host/swagger/default")]
3134
public IHttpActionResult GetGeneratedSwaggerDocument()
3235
{
3336
_traceWriter.Verbose(Resources.SwaggerGenerateDocument);
37+
_logger?.LogDebug(Resources.SwaggerGenerateDocument);
3438
var swaggerDocument = _swaggerDocumentManager.GenerateSwaggerDocument(_scriptHostManager.HttpFunctions);
3539
return Ok(swaggerDocument);
3640
}

src/WebJobs.Script.WebHost/GlobalSuppressions.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,19 +71,16 @@
7171
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.Models.ApiModel.#Links")]
7272
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1810:InitializeReferenceTypeStaticFieldsInline", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.Models.ApiModelUtility.#.cctor()")]
7373
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.SecretManager.#.ctor(System.String,Microsoft.Azure.WebJobs.Script.WebHost.IKeyValueConverterFactory,System.Boolean)")]
74-
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.SecretManager.#.ctor(System.String,Microsoft.Azure.WebJobs.Script.WebHost.IKeyValueConverterFactory,System.Boolean)")]
7574
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.Controllers.HomeController.#IsHomePageDisabled")]
7675
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.Controllers.HomeController.#Get()")]
7776
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1810:InitializeReferenceTypeStaticFieldsInline", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.Models.ApiModelUtility.#.cctor()")]
7877
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.WebHostResolver.#GetSecretManager(Microsoft.Azure.WebJobs.Script.Settings.ScriptSettingsManager,System.String)")]
7978
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.WebHostResolver.#GetSecretManager(Microsoft.Azure.WebJobs.Script.Config.ScriptSettingsManager,System.String)")]
8079
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed", MessageId = "_fileWatcher", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.SecretManager.#Dispose(System.Boolean)")]
8180
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.DefaultSecretManagerFactory.#Create(Microsoft.Azure.WebJobs.Script.Config.ScriptSettingsManager,Microsoft.Azure.WebJobs.Host.TraceWriter,System.String)")]
82-
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.SecretManager.#.ctor(System.String,Microsoft.Azure.WebJobs.Script.WebHost.IKeyValueConverterFactory,Microsoft.Azure.WebJobs.Host.TraceWriter,System.Boolean)")]
8381
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed", MessageId = "_httpRoutes", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.WebScriptHostManager.#Dispose(System.Boolean)")]
8482
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed", MessageId = "_metricsLogger", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.WebScriptHostManager.#Dispose(System.Boolean)")]
8583
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed", MessageId = "_httpConfiguration", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.WebHooks.WebHookReceiverManager.#Dispose(System.Boolean)")]
86-
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.SecretManager.#.ctor(Microsoft.Azure.WebJobs.Script.WebHost.ISecretsRepository,Microsoft.Azure.WebJobs.Script.WebHost.IKeyValueConverterFactory,Microsoft.Azure.WebJobs.Host.TraceWriter,System.Boolean)")]
8784
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.DefaultSecretManagerFactory.#Create(Microsoft.Azure.WebJobs.Script.Config.ScriptSettingsManager,Microsoft.Azure.WebJobs.Host.TraceWriter,Microsoft.Azure.WebJobs.Script.WebHost.ISecretsRepository)")]
8885
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.WebScriptHostManager.#.ctor(Microsoft.Azure.WebJobs.Script.ScriptHostConfiguration,Microsoft.Azure.WebJobs.Script.WebHost.ISecretManagerFactory,Microsoft.Azure.WebJobs.Script.Config.ScriptSettingsManager,Microsoft.Azure.WebJobs.Script.WebHost.WebHostSettings,Microsoft.Azure.WebJobs.Script.IScriptHostFactory)")]
8986
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.Diagnostics.MetricsEventManager.#BeginEvent(System.String,System.String)")]
@@ -111,4 +108,6 @@
111108
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1118:Parameter must not span multiple lines", Justification = "<Pending>", Scope = "member", Target = "~M:Microsoft.Azure.WebJobs.Script.WebHost.Diagnostics.MetricsEventManager.HostStarted(Microsoft.Azure.WebJobs.Script.ScriptHost)")]
112109
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.Models.Swagger.SwaggerDocument.#ApiEndpoints")]
113110
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.DefaultSecretsRepositoryFactory.#Create(Microsoft.Azure.WebJobs.Script.Config.ScriptSettingsManager,Microsoft.Azure.WebJobs.Script.WebHost.WebHostSettings,Microsoft.Azure.WebJobs.Script.ScriptHostConfiguration)")]
114-
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1014:MarkAssembliesWithClsCompliant")]
111+
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1014:MarkAssembliesWithClsCompliant")]
112+
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.DefaultSecretManagerFactory.#Create(Microsoft.Azure.WebJobs.Script.Config.ScriptSettingsManager,Microsoft.Azure.WebJobs.Host.TraceWriter,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Azure.WebJobs.Script.WebHost.ISecretsRepository)")]
113+
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.SecretManager.#.ctor(Microsoft.Azure.WebJobs.Script.WebHost.ISecretsRepository,Microsoft.Azure.WebJobs.Script.WebHost.IKeyValueConverterFactory,Microsoft.Azure.WebJobs.Host.TraceWriter,Microsoft.Extensions.Logging.ILoggerFactory,System.Boolean)")]

src/WebJobs.Script.WebHost/Security/BlobStorageSecretsRepository.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
using System.Collections.Generic;
66
using System.Globalization;
77
using System.IO;
8-
using System.Linq;
98
using System.Threading.Tasks;
109
using Microsoft.Azure.WebJobs.Host;
1110
using Microsoft.Azure.WebJobs.Script.IO;
11+
using Microsoft.Extensions.Logging;
1212
using Microsoft.WindowsAzure.Storage;
1313
using Microsoft.WindowsAzure.Storage.Blob;
1414

@@ -133,7 +133,7 @@ public async Task WriteAsync(ScriptSecretsType type, string functionName, string
133133
await FileUtility.WriteAsync(filePath, DateTime.UtcNow.ToString());
134134
}
135135

136-
public async Task PurgeOldSecretsAsync(IList<string> currentFunctions, TraceWriter traceWriter)
136+
public async Task PurgeOldSecretsAsync(IList<string> currentFunctions, TraceWriter traceWriter, ILogger logger)
137137
{
138138
// no-op - allow stale secrets to remain
139139
await Task.Yield();

src/WebJobs.Script.WebHost/Security/DefaultSecretManagerFactory.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,13 @@
88
using System.Threading.Tasks;
99
using Microsoft.Azure.WebJobs.Host;
1010
using Microsoft.Azure.WebJobs.Script.Config;
11+
using Microsoft.Extensions.Logging;
1112

1213
namespace Microsoft.Azure.WebJobs.Script.WebHost
1314
{
1415
public sealed class DefaultSecretManagerFactory : ISecretManagerFactory
1516
{
16-
public ISecretManager Create(ScriptSettingsManager settingsManager, TraceWriter traceWriter, ISecretsRepository secretsRepository)
17-
=> new SecretManager(settingsManager, secretsRepository, traceWriter);
17+
public ISecretManager Create(ScriptSettingsManager settingsManager, TraceWriter traceWriter, ILoggerFactory loggerFactory, ISecretsRepository secretsRepository)
18+
=> new SecretManager(settingsManager, secretsRepository, traceWriter, loggerFactory);
1819
}
1920
}

src/WebJobs.Script.WebHost/Security/FileSystemSecretsRepository.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using System.Threading.Tasks;
1010
using Microsoft.Azure.WebJobs.Host;
1111
using Microsoft.Azure.WebJobs.Script.IO;
12+
using Microsoft.Extensions.Logging;
1213

1314
namespace Microsoft.Azure.WebJobs.Script.WebHost
1415
{
@@ -88,7 +89,7 @@ public async Task WriteAsync(ScriptSecretsType type, string functionName, string
8889
await FileUtility.WriteAsync(filePath, secretsContent);
8990
}
9091

91-
public async Task PurgeOldSecretsAsync(IList<string> currentFunctions, TraceWriter traceWriter)
92+
public async Task PurgeOldSecretsAsync(IList<string> currentFunctions, TraceWriter traceWriter, ILogger logger)
9293
{
9394
try
9495
{
@@ -124,7 +125,9 @@ public async Task PurgeOldSecretsAsync(IList<string> currentFunctions, TraceWrit
124125
catch (Exception ex)
125126
{
126127
// Purge is best effort
127-
traceWriter.Error("An error occurred while purging secret files", ex);
128+
string message = "An error occurred while purging secret files";
129+
traceWriter.Error(message, ex);
130+
logger?.LogError(0, ex, message);
128131
}
129132
}
130133

0 commit comments

Comments
 (0)