Skip to content

Commit 20f06d2

Browse files
committed
console log buffer PR feedback - comments and tweaks to options usage
1 parent 6f01933 commit 20f06d2

File tree

4 files changed

+28
-7
lines changed

4 files changed

+28
-7
lines changed

src/WebJobs.Script.WebHost/Diagnostics/BufferedConsoleWriter.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ private void WriteToConsoleBuffer(string evt)
7070
}
7171
}
7272

73+
// internal only for testing - should only be used from the constructor, not intended for concurrent callers.
7374
internal void StartProcessingBuffer()
7475
{
7576
// intentional no-op if the task is already running

src/WebJobs.Script/Config/ConsoleLoggingOptions.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ public ConsoleLoggingOptions()
1919

2020
public bool LoggingDisabled { get; set; }
2121

22-
public bool BufferEnabled { get; set; }
22+
// Use BufferSize = 0 to disable the buffer
23+
public bool BufferEnabled { get; internal set; }
2324

2425
public int BufferSize { get; set; }
2526
}

src/WebJobs.Script/Config/ConsoleLoggingOptionsSetup.cs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,17 @@ public void Configure(ConsoleLoggingOptions options)
2020
{
2121
options.LoggingDisabled = _configuration.GetValue<int>(EnvironmentSettingNames.ConsoleLoggingDisabled) == 1;
2222

23-
int bufferSize = _configuration.GetValue<int>(EnvironmentSettingNames.ConsoleLoggingBufferSize, ConsoleLoggingOptions.DefaultBufferSize);
24-
if (bufferSize < 0)
23+
int? bufferSize = _configuration.GetValue<int?>(EnvironmentSettingNames.ConsoleLoggingBufferSize);
24+
if (bufferSize != null)
2525
{
26-
throw new ArgumentOutOfRangeException(nameof(EnvironmentSettingNames.ConsoleLoggingBufferSize), "Console buffer size cannot be negative");
27-
}
26+
if (bufferSize < 0)
27+
{
28+
throw new ArgumentOutOfRangeException(nameof(EnvironmentSettingNames.ConsoleLoggingBufferSize), "Console buffer size cannot be negative");
29+
}
2830

29-
options.BufferEnabled = bufferSize > 0;
30-
options.BufferSize = bufferSize;
31+
options.BufferEnabled = bufferSize > 0;
32+
options.BufferSize = bufferSize.Value;
33+
}
3134
}
3235
}
3336
}

test/WebJobs.Script.Tests/Configuration/ConsoleLoggingOptionsSetupTests.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,5 +88,21 @@ public void ConsoleLoggingOptionsSetup_CanSetBufferSize()
8888

8989
Assert.Equal(100, options.BufferSize);
9090
}
91+
92+
[Fact]
93+
public void ConsoleLoggingOptionsSetup_DoesNotOverwriteCustomBufferSizeIfNotSet()
94+
{
95+
var settings = new Dictionary<string, string>();
96+
97+
IConfiguration config = new ConfigurationBuilder()
98+
.AddInMemoryCollection(settings)
99+
.Build();
100+
101+
ConsoleLoggingOptionsSetup setup = new ConsoleLoggingOptionsSetup(config);
102+
ConsoleLoggingOptions options = new ConsoleLoggingOptions { BufferSize = 100 };
103+
setup.Configure(options);
104+
105+
Assert.Equal(100, options.BufferSize);
106+
}
91107
}
92108
}

0 commit comments

Comments
 (0)