Skip to content

Commit 8c372f1

Browse files
committed
Apply trace level filter in ConsoleTraceWriter
1 parent 2c36df8 commit 8c372f1

File tree

3 files changed

+58
-0
lines changed

3 files changed

+58
-0
lines changed

src/WebJobs.Script/Diagnostics/ConsoleTraceWriter.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ public ConsoleTraceWriter(TraceLevel traceLevel) : base(traceLevel)
1515

1616
public override void Trace(TraceEvent traceEvent)
1717
{
18+
if (Level < traceEvent.Level)
19+
{
20+
return;
21+
}
22+
1823
Console.WriteLine(traceEvent.Message);
1924
}
2025
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
// Copyright (c) .NET Foundation. All rights reserved.
2+
// Licensed under the MIT License. See License.txt in the project root for license information.
3+
4+
using System;
5+
using System.Collections.Generic;
6+
using System.Diagnostics;
7+
using System.IO;
8+
using System.Linq;
9+
using System.Text;
10+
using System.Threading.Tasks;
11+
using Xunit;
12+
13+
namespace Microsoft.Azure.WebJobs.Script.Tests
14+
{
15+
public class ConsoleTraceWriterTests
16+
{
17+
[Fact]
18+
public void Trace_AppliesLevelFilter()
19+
{
20+
try
21+
{
22+
var traceWriter = new ConsoleTraceWriter(TraceLevel.Info);
23+
using (var writer = new StringWriter())
24+
{
25+
Console.SetOut(writer);
26+
27+
traceWriter.Verbose("Test Verbose");
28+
traceWriter.Info("Test Info");
29+
traceWriter.Warning("Test Warning");
30+
traceWriter.Error("Test Error");
31+
32+
traceWriter.Flush();
33+
34+
string output = writer.ToString();
35+
string[] lines = output.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
36+
37+
Assert.Equal(3, lines.Length);
38+
Assert.Equal("Test Info", lines[0]);
39+
Assert.Equal("Test Warning", lines[1]);
40+
Assert.Equal("Test Error", lines[2]);
41+
Assert.False(output.Contains("Trace Verbose"));
42+
}
43+
}
44+
finally
45+
{
46+
var standardOutput = new StreamWriter(Console.OpenStandardOutput());
47+
standardOutput.AutoFlush = true;
48+
Console.SetOut(standardOutput);
49+
}
50+
}
51+
}
52+
}

test/WebJobs.Script.Tests/WebJobs.Script.Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,7 @@
331331
<Compile Include="Binding\ScriptBindingContextTests.cs" />
332332
<Compile Include="BlobLeaseManagerTests.cs" />
333333
<Compile Include="CompositeTraceWriterTests.cs" />
334+
<Compile Include="ConsoleTraceWriterTests.cs" />
334335
<Compile Include="CSharpEndToEndTests.cs" />
335336
<Compile Include="CSharpFunctionSignatureTests.cs" />
336337
<Compile Include="Description\DotNet\CSharp\CSharpCompilationTests.cs" />

0 commit comments

Comments
 (0)