@@ -38,13 +38,15 @@ public sealed class FunctionsSyncManager : IFunctionsSyncManager, IDisposable
38
38
private readonly bool _ownsHttpClient ;
39
39
private readonly ScriptSettingsManager _settings ;
40
40
private readonly SemaphoreSlim _syncSemaphore = new SemaphoreSlim ( 1 , 1 ) ;
41
+ private readonly TraceWriter _traceWriter ;
41
42
42
43
private CloudBlockBlob _hashBlob ;
43
44
44
45
public FunctionsSyncManager ( ScriptHostConfiguration hostConfig , ILoggerFactory loggerFactory , ISecretManager secretManager , ScriptSettingsManager settings , HttpClient httpClient = null )
45
46
{
46
47
_hostConfig = hostConfig ;
47
- _logger = loggerFactory . CreateLogger ( ScriptConstants . LogCategoryHostGeneral ) ;
48
+ _logger = loggerFactory . CreateLogger < FunctionsSyncManager > ( ) ;
49
+ _traceWriter = hostConfig . TraceWriter . WithDefaults ( typeof ( FunctionsSyncManager ) . FullName ) ;
48
50
_secretManager = secretManager ;
49
51
_settings = settings ;
50
52
@@ -76,6 +78,7 @@ public async Task<SyncTriggersResult> TrySyncTriggersAsync(bool checkHash = fals
76
78
result . Success = false ;
77
79
result . Error = "Invalid environment for SyncTriggers operation." ;
78
80
_logger . LogWarning ( result . Error ) ;
81
+ _traceWriter . Warning ( result . Error ) ;
79
82
return result ;
80
83
}
81
84
@@ -119,6 +122,7 @@ public async Task<SyncTriggersResult> TrySyncTriggersAsync(bool checkHash = fals
119
122
result . Success = false ;
120
123
result . Error = "SyncTriggers operation failed." ;
121
124
_logger . LogError ( 0 , ex , result . Error ) ;
125
+ _traceWriter . Error ( result . Error , ex ) ;
122
126
}
123
127
finally
124
128
{
@@ -171,7 +175,9 @@ internal async Task<string> CheckHashAsync(CloudBlockBlob hashBlob, string conte
171
175
if ( await hashBlob . ExistsAsync ( ) )
172
176
{
173
177
lastHash = await hashBlob . DownloadTextAsync ( ) ;
174
- _logger . LogDebug ( $ "SyncTriggers hash (Last='{ lastHash } ', Current='{ currentHash } ')") ;
178
+ string message = $ "SyncTriggers hash (Last='{ lastHash } ', Current='{ currentHash } ')";
179
+ _logger . LogDebug ( message ) ;
180
+ _traceWriter . Verbose ( message ) ;
175
181
}
176
182
177
183
if ( string . Compare ( currentHash , lastHash ) != 0 )
@@ -184,7 +190,9 @@ internal async Task<string> CheckHashAsync(CloudBlockBlob hashBlob, string conte
184
190
catch ( Exception ex )
185
191
{
186
192
// best effort
187
- _logger . LogError ( 0 , ex , "Error checking SyncTriggers hash" ) ;
193
+ string error = "Error checking SyncTriggers hash" ;
194
+ _logger . LogError ( 0 , ex , error ) ;
195
+ _traceWriter . Error ( error , ex ) ;
188
196
}
189
197
190
198
// if the last and current hash values are the same,
@@ -199,12 +207,16 @@ internal async Task UpdateHashAsync(CloudBlockBlob hashBlob, string hash)
199
207
// hash value has changed or was not yet stored
200
208
// update the last hash value in storage
201
209
await hashBlob . UploadTextAsync ( hash ) ;
202
- _logger . LogDebug ( $ "SyncTriggers hash updated to '{ hash } '") ;
210
+ string message = $ "SyncTriggers hash updated to '{ hash } '";
211
+ _logger . LogDebug ( message ) ;
212
+ _traceWriter . Verbose ( message ) ;
203
213
}
204
214
catch ( Exception ex )
205
215
{
206
216
// best effort
207
- _logger . LogError ( 0 , ex , "Error updating SyncTriggers hash" ) ;
217
+ string error = "Error updating SyncTriggers hash" ;
218
+ _logger . LogError ( 0 , ex , error ) ;
219
+ _traceWriter . Error ( error , ex ) ;
208
220
}
209
221
}
210
222
@@ -298,7 +310,9 @@ public async Task<string> GetSyncTriggersPayload()
298
310
// The settriggers call to the FE enforces a max request size
299
311
// limit. If we're over limit, revert to the minimal triggers
300
312
// format.
301
- _logger . LogWarning ( $ "SyncTriggers payload of length '{ json . Length } ' exceeds max length of '{ ScriptConstants . MaxTriggersStringLength } '. Reverting to minimal format.") ;
313
+ string warning = $ "SyncTriggers payload of length '{ json . Length } ' exceeds max length of '{ ScriptConstants . MaxTriggersStringLength } '. Reverting to minimal format.";
314
+ _logger . LogWarning ( warning ) ;
315
+ _traceWriter . Warning ( warning ) ;
302
316
return JsonConvert . SerializeObject ( triggersArray ) ;
303
317
}
304
318
@@ -428,18 +442,23 @@ internal static HttpRequestMessage BuildSetTriggersRequest()
428
442
request . Headers . Add ( "x-ms-site-restricted-token" , token ) ;
429
443
request . Content = new StringContent ( content , Encoding . UTF8 , "application/json" ) ;
430
444
431
- _logger . LogDebug ( $ "Making SyncTriggers request (RequestId={ requestId } , Uri={ request . RequestUri . ToString ( ) } , Content={ sanitizedContentString } ).") ;
445
+ string message = $ "Making SyncTriggers request (RequestId={ requestId } , Uri={ request . RequestUri . ToString ( ) } , Content={ sanitizedContentString } ).";
446
+ _logger . LogDebug ( message ) ;
447
+ _traceWriter . Verbose ( message ) ;
432
448
433
449
var response = await _httpClient . SendAsync ( request ) ;
434
450
if ( response . IsSuccessStatusCode )
435
451
{
436
- _logger . LogDebug ( $ "SyncTriggers call succeeded.") ;
452
+ message = $ "SyncTriggers call succeeded.";
453
+ _logger . LogDebug ( message ) ;
454
+ _traceWriter . Verbose ( message ) ;
437
455
return ( true , null ) ;
438
456
}
439
457
else
440
458
{
441
- string message = $ "SyncTriggers call failed (StatusCode={ response . StatusCode } ).";
459
+ message = $ "SyncTriggers call failed (StatusCode={ response . StatusCode } ).";
442
460
_logger . LogDebug ( message ) ;
461
+ _traceWriter . Verbose ( message ) ;
443
462
return ( false , message ) ;
444
463
}
445
464
}
0 commit comments