Skip to content

Commit 3e04969

Browse files
authored
Logging enhancements (#152)
1 parent ee7fe07 commit 3e04969

28 files changed

+473
-313
lines changed

tools/code/common/CommonTypes.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,12 @@ public static async ValueTask OverwriteWithText(this IArtifactFile file, string
120120
await File.WriteAllTextAsync(file.Path.ToString(), text, cancellationToken);
121121
}
122122

123+
public static async ValueTask OverwriteWithBytes(this IArtifactFile file, byte[] bytes, CancellationToken cancellationToken)
124+
{
125+
file.CreateDirectoryIfNotExists();
126+
await File.WriteAllBytesAsync(file.Path.ToString(), bytes, cancellationToken);
127+
}
128+
123129
public static async ValueTask OverwriteWithStream(this IArtifactFile file, Stream stream, CancellationToken cancellationToken)
124130
{
125131
file.CreateDirectoryIfNotExists();

tools/code/common/common.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
<ItemGroup>
1111
<PackageReference Include="Azure.Core" Version="1.26.0" />
12-
<PackageReference Include="Azure.ResourceManager" Version="1.3.1" />
12+
<PackageReference Include="Azure.ResourceManager" Version="1.3.2" />
1313
<PackageReference Include="Flurl" Version="3.0.6" />
1414
<PackageReference Include="Microsoft.Extensions.Http" Version="7.0.0" />
1515
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="7.0.0" />

tools/code/extractor/Api.cs

Lines changed: 82 additions & 44 deletions
Large diffs are not rendered by default.
Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using common;
2+
using Microsoft.Extensions.Logging;
23
using System.Collections.Generic;
34
using System.Linq;
45
using System.Threading;
@@ -8,14 +9,10 @@ namespace extractor;
89

910
internal static class ApiDiagnostic
1011
{
11-
public static async ValueTask ExportAll(ApiUri apiUri, ApiDirectory apiDirectory, ListRestResources listRestResources, GetRestResource getRestResource, CancellationToken cancellationToken)
12+
public static async ValueTask ExportAll(ApiUri apiUri, ApiDirectory apiDirectory, ListRestResources listRestResources, GetRestResource getRestResource, ILogger logger, CancellationToken cancellationToken)
1213
{
1314
await List(apiUri, listRestResources, cancellationToken)
14-
.ForEachParallel(async diagnosticName => await Export(apiDirectory,
15-
apiUri,
16-
diagnosticName,
17-
getRestResource,
18-
cancellationToken),
15+
.ForEachParallel(async diagnosticName => await Export(apiDirectory, apiUri, diagnosticName, getRestResource, logger, cancellationToken),
1916
cancellationToken);
2017
}
2118

@@ -27,25 +24,26 @@ private static IAsyncEnumerable<ApiDiagnosticName> List(ApiUri apiUri, ListRestR
2724
.Select(name => new ApiDiagnosticName(name));
2825
}
2926

30-
private static async ValueTask Export(ApiDirectory apiDirectory, ApiUri apiUri, ApiDiagnosticName apiDiagnosticName, GetRestResource getRestResource, CancellationToken cancellationToken)
27+
private static async ValueTask Export(ApiDirectory apiDirectory, ApiUri apiUri, ApiDiagnosticName apiDiagnosticName, GetRestResource getRestResource, ILogger logger, CancellationToken cancellationToken)
3128
{
3229
var apiDiagnosticsDirectory = new ApiDiagnosticsDirectory(apiDirectory);
3330
var apiDiagnosticDirectory = new ApiDiagnosticDirectory(apiDiagnosticName, apiDiagnosticsDirectory);
3431

3532
var apiDiagnosticsUri = new ApiDiagnosticsUri(apiUri);
3633
var apiDiagnosticUri = new ApiDiagnosticUri(apiDiagnosticName, apiDiagnosticsUri);
3734

38-
await ExportInformationFile(apiDiagnosticDirectory, apiDiagnosticUri, apiDiagnosticName, getRestResource, cancellationToken);
35+
await ExportInformationFile(apiDiagnosticDirectory, apiDiagnosticUri, apiDiagnosticName, getRestResource, logger, cancellationToken);
3936
}
4037

41-
private static async ValueTask ExportInformationFile(ApiDiagnosticDirectory apiDiagnosticDirectory, ApiDiagnosticUri apiDiagnosticUri, ApiDiagnosticName apiDiagnosticName, GetRestResource getRestResource, CancellationToken cancellationToken)
38+
private static async ValueTask ExportInformationFile(ApiDiagnosticDirectory apiDiagnosticDirectory, ApiDiagnosticUri apiDiagnosticUri, ApiDiagnosticName apiDiagnosticName, GetRestResource getRestResource, ILogger logger, CancellationToken cancellationToken)
4239
{
4340
var apiDiagnosticInformationFile = new ApiDiagnosticInformationFile(apiDiagnosticDirectory);
4441

4542
var responseJson = await getRestResource(apiDiagnosticUri.Uri, cancellationToken);
4643
var apiDiagnosticModel = ApiDiagnosticModel.Deserialize(apiDiagnosticName, responseJson);
4744
var contentJson = apiDiagnosticModel.Serialize();
4845

46+
logger.LogInformation("Writing API diagnostic information file {filePath}...", apiDiagnosticInformationFile.Path);
4947
await apiDiagnosticInformationFile.OverwriteWithJson(contentJson, cancellationToken);
5048
}
5149
}
Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using common;
2+
using Microsoft.Extensions.Logging;
23
using System.Collections.Generic;
34
using System.Linq;
45
using System.Threading;
@@ -8,15 +9,10 @@ namespace extractor;
89

910
internal static class ApiOperation
1011
{
11-
public static async ValueTask ExportAll(ApiUri apiUri, ApiDirectory apiDirectory, ListRestResources listRestResources, GetRestResource getRestResource, CancellationToken cancellationToken)
12+
public static async ValueTask ExportAll(ApiUri apiUri, ApiDirectory apiDirectory, ListRestResources listRestResources, GetRestResource getRestResource, ILogger logger, CancellationToken cancellationToken)
1213
{
1314
await List(apiUri, listRestResources, cancellationToken)
14-
.ForEachParallel(async operationName => await Export(apiDirectory,
15-
apiUri,
16-
operationName,
17-
listRestResources,
18-
getRestResource,
19-
cancellationToken),
15+
.ForEachParallel(async operationName => await Export(apiDirectory, apiUri, operationName, listRestResources, getRestResource, logger, cancellationToken),
2016
cancellationToken);
2117
}
2218

@@ -28,19 +24,19 @@ private static IAsyncEnumerable<ApiOperationName> List(ApiUri apiUri, ListRestRe
2824
.Select(name => new ApiOperationName(name));
2925
}
3026

31-
private static async ValueTask Export(ApiDirectory apiDirectory, ApiUri apiUri, ApiOperationName apiOperationName, ListRestResources listRestResources, GetRestResource getRestResource, CancellationToken cancellationToken)
27+
private static async ValueTask Export(ApiDirectory apiDirectory, ApiUri apiUri, ApiOperationName apiOperationName, ListRestResources listRestResources, GetRestResource getRestResource, ILogger logger, CancellationToken cancellationToken)
3228
{
3329
var apiOperationsDirectory = new ApiOperationsDirectory(apiDirectory);
3430
var apiOperationDirectory = new ApiOperationDirectory(apiOperationName, apiOperationsDirectory);
3531

3632
var apiOperationsUri = new ApiOperationsUri(apiUri);
3733
var apiOperationUri = new ApiOperationUri(apiOperationName, apiOperationsUri);
3834

39-
await ExportPolicies(apiOperationDirectory, apiOperationUri, listRestResources, getRestResource, cancellationToken);
35+
await ExportPolicies(apiOperationDirectory, apiOperationUri, listRestResources, getRestResource, logger, cancellationToken);
4036
}
4137

42-
private static async ValueTask ExportPolicies(ApiOperationDirectory apiOperationDirectory, ApiOperationUri apiOperationUri, ListRestResources listRestResources, GetRestResource getRestResource, CancellationToken cancellationToken)
38+
private static async ValueTask ExportPolicies(ApiOperationDirectory apiOperationDirectory, ApiOperationUri apiOperationUri, ListRestResources listRestResources, GetRestResource getRestResource, ILogger logger, CancellationToken cancellationToken)
4339
{
44-
await ApiOperationPolicy.ExportAll(apiOperationDirectory, apiOperationUri, listRestResources, getRestResource, cancellationToken);
40+
await ApiOperationPolicy.ExportAll(apiOperationDirectory, apiOperationUri, listRestResources, getRestResource, logger, cancellationToken);
4541
}
4642
}

tools/code/extractor/ApiOperationPolicy.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using common;
2+
using Microsoft.Extensions.Logging;
23
using System.Collections.Generic;
34
using System.Linq;
45
using System.Threading;
@@ -8,10 +9,10 @@ namespace extractor;
89

910
internal static class ApiOperationPolicy
1011
{
11-
public static async ValueTask ExportAll(ApiOperationDirectory apiOperationDirectory, ApiOperationUri apiOperationUri, ListRestResources listRestResources, GetRestResource getRestResource, CancellationToken cancellationToken)
12+
public static async ValueTask ExportAll(ApiOperationDirectory apiOperationDirectory, ApiOperationUri apiOperationUri, ListRestResources listRestResources, GetRestResource getRestResource, ILogger logger, CancellationToken cancellationToken)
1213
{
1314
await List(apiOperationUri, listRestResources, cancellationToken)
14-
.ForEachParallel(async policyName => await Export(apiOperationDirectory, apiOperationUri, policyName, getRestResource, cancellationToken),
15+
.ForEachParallel(async policyName => await Export(apiOperationDirectory, apiOperationUri, policyName, getRestResource, logger, cancellationToken),
1516
cancellationToken);
1617
}
1718

@@ -23,7 +24,7 @@ private static IAsyncEnumerable<ApiOperationPolicyName> List(ApiOperationUri api
2324
.Select(name => new ApiOperationPolicyName(name));
2425
}
2526

26-
private static async ValueTask Export(ApiOperationDirectory apiOperationDirectory, ApiOperationUri apiOperationUri, ApiOperationPolicyName policyName, GetRestResource getRestResource, CancellationToken cancellationToken)
27+
private static async ValueTask Export(ApiOperationDirectory apiOperationDirectory, ApiOperationUri apiOperationUri, ApiOperationPolicyName policyName, GetRestResource getRestResource, ILogger logger, CancellationToken cancellationToken)
2728
{
2829
var policyFile = new ApiOperationPolicyFile(policyName, apiOperationDirectory);
2930

@@ -33,6 +34,7 @@ private static async ValueTask Export(ApiOperationDirectory apiOperationDirector
3334
var policyContent = responseJson.GetJsonObjectProperty("properties")
3435
.GetStringProperty("value");
3536

37+
logger.LogInformation("Writing API operation policy file {filePath}...", policyFile.Path);
3638
await policyFile.OverwriteWithText(policyContent, cancellationToken);
3739
}
3840
}

tools/code/extractor/ApiPolicy.cs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using common;
2+
using Microsoft.Extensions.Logging;
23
using System.Collections.Generic;
34
using System.Linq;
45
using System.Threading;
@@ -8,14 +9,10 @@ namespace extractor;
89

910
internal static class ApiPolicy
1011
{
11-
public static async ValueTask ExportAll(ApiDirectory apiDirectory, ApiUri apiUri, ListRestResources listRestResources, GetRestResource getRestResource, CancellationToken cancellationToken)
12+
public static async ValueTask ExportAll(ApiDirectory apiDirectory, ApiUri apiUri, ListRestResources listRestResources, GetRestResource getRestResource, ILogger logger, CancellationToken cancellationToken)
1213
{
1314
await List(apiUri, listRestResources, cancellationToken)
14-
.ForEachParallel(async policyName => await Export(apiDirectory,
15-
apiUri,
16-
policyName,
17-
getRestResource,
18-
cancellationToken),
15+
.ForEachParallel(async policyName => await Export(apiDirectory, apiUri, policyName, getRestResource, logger, cancellationToken),
1916
cancellationToken);
2017
}
2118

@@ -27,7 +24,7 @@ private static IAsyncEnumerable<ApiPolicyName> List(ApiUri apiUri, ListRestResou
2724
.Select(name => new ApiPolicyName(name));
2825
}
2926

30-
private static async ValueTask Export(ApiDirectory apiDirectory, ApiUri apiUri, ApiPolicyName policyName, GetRestResource getRestResource, CancellationToken cancellationToken)
27+
private static async ValueTask Export(ApiDirectory apiDirectory, ApiUri apiUri, ApiPolicyName policyName, GetRestResource getRestResource, ILogger logger, CancellationToken cancellationToken)
3128
{
3229
var policyFile = new ApiPolicyFile(policyName, apiDirectory);
3330

@@ -37,6 +34,7 @@ private static async ValueTask Export(ApiDirectory apiDirectory, ApiUri apiUri,
3734
var policyContent = responseJson.GetJsonObjectProperty("properties")
3835
.GetStringProperty("value");
3936

37+
logger.LogInformation("Writing API policy file {filePath}...", policyFile.Path);
4038
await policyFile.OverwriteWithText(policyContent, cancellationToken);
4139
}
4240
}

tools/code/extractor/ApiTag.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using common;
2+
using Microsoft.Extensions.Logging;
23
using System.Collections.Generic;
34
using System.Linq;
45
using System.Text.Json.Nodes;
@@ -9,7 +10,7 @@ namespace extractor;
910

1011
internal static class ApiTag
1112
{
12-
public static async ValueTask ExportAll(ApiDirectory apiDirectory, ApiUri apiUri, ListRestResources listRestResources, CancellationToken cancellationToken)
13+
public static async ValueTask ExportAll(ApiDirectory apiDirectory, ApiUri apiUri, ListRestResources listRestResources, ILogger logger, CancellationToken cancellationToken)
1314
{
1415
var apiTagsFile = new ApiTagsFile(apiDirectory);
1516

@@ -19,6 +20,7 @@ public static async ValueTask ExportAll(ApiDirectory apiDirectory, ApiUri apiUri
1920

2021
if (apiTags.Any())
2122
{
23+
logger.LogInformation("Writing API tags file {filePath}...", apiTagsFile.Path);
2224
await apiTagsFile.OverwriteWithJson(apiTags, cancellationToken);
2325
}
2426
}
Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using common;
2+
using Microsoft.Extensions.Logging;
23
using System.Collections.Generic;
34
using System.Linq;
45
using System.Threading;
@@ -8,14 +9,10 @@ namespace extractor;
89

910
internal static class ApiVersionSet
1011
{
11-
public static async ValueTask ExportAll(ServiceDirectory serviceDirectory, ServiceUri serviceUri, ListRestResources listRestResources, GetRestResource getRestResource, CancellationToken cancellationToken)
12+
public static async ValueTask ExportAll(ServiceDirectory serviceDirectory, ServiceUri serviceUri, ListRestResources listRestResources, GetRestResource getRestResource, ILogger logger, CancellationToken cancellationToken)
1213
{
1314
await List(serviceUri, listRestResources, cancellationToken)
14-
.ForEachParallel(async apiVersionSetName => await Export(serviceDirectory,
15-
serviceUri,
16-
apiVersionSetName,
17-
getRestResource,
18-
cancellationToken),
15+
.ForEachParallel(async apiVersionSetName => await Export(serviceDirectory, serviceUri, apiVersionSetName, getRestResource, logger, cancellationToken),
1916
cancellationToken);
2017
}
2118

@@ -27,25 +24,26 @@ private static IAsyncEnumerable<ApiVersionSetName> List(ServiceUri serviceUri, L
2724
.Select(name => new ApiVersionSetName(name));
2825
}
2926

30-
private static async ValueTask Export(ServiceDirectory serviceDirectory, ServiceUri serviceUri, ApiVersionSetName apiVersionSetName, GetRestResource getRestResource, CancellationToken cancellationToken)
27+
private static async ValueTask Export(ServiceDirectory serviceDirectory, ServiceUri serviceUri, ApiVersionSetName apiVersionSetName, GetRestResource getRestResource, ILogger logger, CancellationToken cancellationToken)
3128
{
3229
var apiVersionSetsDirectory = new ApiVersionSetsDirectory(serviceDirectory);
3330
var apiVersionSetDirectory = new ApiVersionSetDirectory(apiVersionSetName, apiVersionSetsDirectory);
3431

3532
var apiVersionSetsUri = new ApiVersionSetsUri(serviceUri);
3633
var apiVersionSetUri = new ApiVersionSetUri(apiVersionSetName, apiVersionSetsUri);
3734

38-
await ExportInformationFile(apiVersionSetDirectory, apiVersionSetUri, apiVersionSetName, getRestResource, cancellationToken);
35+
await ExportInformationFile(apiVersionSetDirectory, apiVersionSetUri, apiVersionSetName, getRestResource, logger, cancellationToken);
3936
}
4037

41-
private static async ValueTask ExportInformationFile(ApiVersionSetDirectory apiVersionSetDirectory, ApiVersionSetUri apiVersionSetUri, ApiVersionSetName apiVersionSetName, GetRestResource getRestResource, CancellationToken cancellationToken)
38+
private static async ValueTask ExportInformationFile(ApiVersionSetDirectory apiVersionSetDirectory, ApiVersionSetUri apiVersionSetUri, ApiVersionSetName apiVersionSetName, GetRestResource getRestResource, ILogger logger, CancellationToken cancellationToken)
4239
{
4340
var apiVersionSetInformationFile = new ApiVersionSetInformationFile(apiVersionSetDirectory);
4441

4542
var responseJson = await getRestResource(apiVersionSetUri.Uri, cancellationToken);
4643
var apiVersionSetModel = ApiVersionSetModel.Deserialize(apiVersionSetName, responseJson);
4744
var contentJson = apiVersionSetModel.Serialize();
4845

46+
logger.LogInformation("Writing API version set information file {filePath}...", apiVersionSetInformationFile.Path);
4947
await apiVersionSetInformationFile.OverwriteWithJson(contentJson, cancellationToken);
5048
}
5149
}

0 commit comments

Comments
 (0)