Skip to content

Commit e1e5373

Browse files
fabiocavmathewc
authored andcommitted
Setting the log source for file watcher logs
1 parent c2e3fd1 commit e1e5373

File tree

3 files changed

+15
-8
lines changed

3 files changed

+15
-8
lines changed

src/WebJobs.Script/IO/AutoRecoveringFileSystemWatcher.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,15 @@ public AutoRecoveringFileSystemWatcher(string path, string filter = "*.*",
3535
_filter = filter;
3636
_changeTypes = changeTypes;
3737
_includeSubdirectories = includeSubdirectories;
38-
_traceWriter = traceWriter;
3938
_cancellationTokenSource = new CancellationTokenSource();
4039
_cancellationToken = _cancellationTokenSource.Token;
4140
_handleFileError = new Action<ErrorEventArgs>(OnFileWatcherError).Debounce();
4241

42+
if (traceWriter != null)
43+
{
44+
_traceWriter = traceWriter.WithSource(ScriptConstants.TraceSourceFileWatcher);
45+
}
46+
4347
InitializeWatcher();
4448
}
4549

@@ -126,7 +130,7 @@ protected void OnFileWatcherError(ErrorEventArgs args)
126130

127131
private void Trace(string message, TraceLevel level)
128132
{
129-
_traceWriter?.Trace($"File watcher: ('{_path}') - {message}", level, null);
133+
_traceWriter?.Trace($"{message} (path: '{_path}')", level, null);
130134
}
131135

132136
private async Task Recover(int attempt = 1)

src/WebJobs.Script/ScriptConstants.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public static class ScriptConstants
2020
public const string TracePropertyIsSystemTraceKey = "MS_IsSystemTrace";
2121

2222
public const string TraceSourceSecretManagement = "SecretManagement";
23+
public const string TraceSourceFileWatcher = "FileWatcher";
2324

2425
// Define all system parameters we inject with a prefix to avoid collisions
2526
// with user parameters

test/WebJobs.Script.Tests/IO/AutoRecoveringFileSystemWatcherTests.cs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public async Task RecoveryTest(int expectedNumberOfAttempts, bool isFailureScena
7777
{
7878
Directory.Delete(directory.Path, true);
7979

80-
string fileWatcherLogPrefix = $"File watcher: ('{directory.Path}')";
80+
string fileWatcherLogSuffix = $"(path: '{directory.Path}')";
8181

8282
// 1 trace per attempt + 1 trace per failed attempt
8383
int expectedTracesBeforeRecovery = (expectedNumberOfAttempts * 2) - 1;
@@ -88,7 +88,7 @@ public async Task RecoveryTest(int expectedNumberOfAttempts, bool isFailureScena
8888
expectedTracesAfterRecovery++;
8989
}
9090

91-
await TestHelpers.Await(() =>
91+
await TestHelpers.Await(() =>
9292
{
9393
return traceWriter.Traces.Count == expectedTracesBeforeRecovery;
9494
}, pollingInterval: 500);
@@ -132,7 +132,7 @@ await TestHelpers.Await(() =>
132132
Assert.Equal(expectedInterval, (int)actualInterval.TotalSeconds);
133133
}
134134

135-
Assert.True(traceWriter.Traces.All(t => t.Message.StartsWith(fileWatcherLogPrefix)));
135+
Assert.True(traceWriter.Traces.All(t => t.Message.EndsWith(fileWatcherLogSuffix)));
136136

137137
if (isFailureScenario)
138138
{
@@ -142,6 +142,8 @@ await TestHelpers.Await(() =>
142142
{
143143
Assert.Contains("File watcher recovered.", traceWriter.Traces.Last().Message);
144144
}
145+
146+
Assert.Equal(ScriptConstants.TraceSourceFileWatcher, traceWriter.Traces.Last().Source);
145147
}
146148
}
147149

@@ -168,14 +170,14 @@ public void FileChanges_SendsExpectedNotification(WatcherChangeTypes changeType)
168170
File.Delete(filePath);
169171
};
170172

171-
Func<FileSystemEventArgs, bool> handler = a => string.Equals(a.FullPath, filePath, StringComparison.OrdinalIgnoreCase) && a.ChangeType == changeType;
173+
Func<FileSystemEventArgs, bool> handler = a => string.Equals(a.FullPath, filePath, StringComparison.OrdinalIgnoreCase) && a.ChangeType == changeType;
172174

173175
FileWatcherTest(directory.Path, action, handler);
174176
}
175177
}
176178

177179
public void FileWatcherTest(string path, Action<AutoRecoveringFileSystemWatcher> action, Func<FileSystemEventArgs, bool> changeHandler,
178-
WatcherChangeTypes changeTypes = WatcherChangeTypes.All, bool expectEvent = true)
180+
WatcherChangeTypes changeTypes = WatcherChangeTypes.All, bool expectEvent = true)
179181
{
180182
var traceWriter = new TestTraceWriter(System.Diagnostics.TraceLevel.Verbose);
181183

@@ -201,7 +203,7 @@ public void FileWatcherTest(string path, Action<AutoRecoveringFileSystemWatcher>
201203

202204
private class TestFileSystemWatcher : AutoRecoveringFileSystemWatcher
203205
{
204-
public TestFileSystemWatcher(string path, string filter = "*.*",
206+
public TestFileSystemWatcher(string path, string filter = "*.*",
205207
bool includeSubdirectories = true, WatcherChangeTypes changeTypes = WatcherChangeTypes.All, TraceWriter traceWriter = null)
206208
: base(path, filter, includeSubdirectories, changeTypes, traceWriter)
207209
{

0 commit comments

Comments
 (0)