Skip to content

Commit 55211c1

Browse files
committed
Ensure that FileTraceWriter applies TraceLevel
1 parent 33881e6 commit 55211c1

File tree

3 files changed

+34
-7
lines changed

3 files changed

+34
-7
lines changed

src/WebJobs.Script/Diagnostics/FileTraceWriter.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,13 @@ public override void Trace(TraceEvent traceEvent)
130130
throw new ArgumentNullException("traceEvent");
131131
}
132132

133+
if (Level < traceEvent.Level)
134+
{
135+
return;
136+
}
137+
133138
AppendLine(traceEvent.Message);
139+
134140
if (traceEvent.Exception != null)
135141
{
136142
if (traceEvent.Exception is FunctionInvocationException ||

test/WebJobs.Script.Tests/FileTraceWriterTests.cs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,32 @@ public void WriteLogs_ReusesLastFile()
140140
Assert.Equal(3, fileLines.Length);
141141
}
142142

143+
[Fact]
144+
public void Trace_AppliesLevelFilter()
145+
{
146+
DirectoryInfo directory = new DirectoryInfo(_logFilePath);
147+
directory.Create();
148+
149+
int count = directory.EnumerateFiles().Count();
150+
Assert.Equal(0, count);
151+
152+
FileTraceWriter traceWriter = new FileTraceWriter(_logFilePath, TraceLevel.Info);
153+
154+
traceWriter.Verbose("Test Verbose");
155+
traceWriter.Info("Test Info");
156+
traceWriter.Warning("Test Warning");
157+
traceWriter.Error("Test Error");
158+
159+
traceWriter.Flush();
160+
161+
string logFile = directory.EnumerateFiles().First().FullName;
162+
string text = File.ReadAllText(logFile);
163+
Assert.True(text.Contains("Test Error"));
164+
Assert.True(text.Contains("Test Warning"));
165+
Assert.True(text.Contains("Test Info"));
166+
Assert.False(text.Contains("Test Verbose"));
167+
}
168+
143169
private void WriteLogs(string logFilePath, int numLogs)
144170
{
145171
FileTraceWriter traceWriter = new FileTraceWriter(logFilePath, TraceLevel.Verbose);

test/WebJobs.Script.Tests/PowerShellEndToEndTests.cs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,6 @@ public async Task HttpTriggerWithError_Get()
7171
string functionName = "HttpTrigger-PowerShellWithError";
7272
TestHelpers.ClearFunctionLogs(functionName);
7373

74-
string innerException = "PowerShell script error";
75-
string errorRecordMessage = "Test Error in Get-DateToday";
76-
string expectedModuleRelativePath = string.Format("/{0}/modules/Get-DateToday.psm1", functionName);
7774
HttpRequestMessage request = new HttpRequestMessage
7875
{
7976
RequestUri =
@@ -87,6 +84,8 @@ public async Task HttpTriggerWithError_Get()
8784
{ "req", request }
8885
};
8986

87+
string innerException = "PowerShell script error";
88+
string errorRecordMessage = "Test Error in Get-DateToday";
9089
Exception ex = await
9190
Assert.ThrowsAsync<FunctionInvocationException>(async () => await Fixture.Host.CallAsync(functionName, arguments));
9291
var runtimeException = (RuntimeException)ex.InnerException;
@@ -96,10 +95,6 @@ public async Task HttpTriggerWithError_Get()
9695
var logs = await TestHelpers.GetFunctionLogsAsync(functionName);
9796
Assert.True(logs.Any(p => p.Contains("Function started")));
9897

99-
// verify module was loaded
100-
Assert.True(logs.Any(p => p.Contains("Loaded modules:")));
101-
Assert.True(logs.Any(p => p.IndexOf(expectedModuleRelativePath, StringComparison.OrdinalIgnoreCase) >= 0));
102-
10398
// verify an error was written
10499
Assert.True(logs.Any(p => p.Contains(errorRecordMessage)));
105100

0 commit comments

Comments
 (0)