Skip to content

Commit 6df21b8

Browse files
committed
test(logging): implement asynchronous logging for batch processing
1 parent 3c32f2b commit 6df21b8

File tree

2 files changed

+46
-37
lines changed

2 files changed

+46
-37
lines changed

source/RevitDevTool.Test/Log.cs

Lines changed: 45 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,22 @@ public class BatchDebugLogCmd : ExternalCommand
99
{
1010
public override void Execute()
1111
{
12-
var stopwatch = Stopwatch.StartNew();
13-
stopwatch.Start();
14-
for (var stepNumber = 1; stepNumber <= 10000; stepNumber++)
12+
Task.Run(() =>
1513
{
16-
Debug.WriteLine($"Processing batch item Step {stepNumber}");
17-
Debug.WriteLine($"Batch processing metrics for Step {stepNumber}");
18-
Debug.WriteLine($"Completed processing Step {stepNumber:000}");
19-
Debug.WriteLine($"Performance warning for Step {stepNumber:000}");
20-
Debug.WriteLine($"Failed to process Step {stepNumber:000}");
21-
Debug.WriteLine($"Critical failure in Step {stepNumber:000}");
22-
}
23-
stopwatch.Stop();
24-
Debug.WriteLine($"Total processing time: {stopwatch.ElapsedMilliseconds} ms");
14+
var stopwatch = Stopwatch.StartNew();
15+
stopwatch.Start();
16+
for (var stepNumber = 1; stepNumber <= 10000; stepNumber++)
17+
{
18+
Debug.WriteLine($"Processing batch item Step {stepNumber}");
19+
Debug.WriteLine($"Batch processing metrics for Step {stepNumber}");
20+
Debug.WriteLine($"Completed processing Step {stepNumber:000}");
21+
Debug.WriteLine($"Performance warning for Step {stepNumber:000}");
22+
Debug.WriteLine($"Failed to process Step {stepNumber:000}");
23+
Debug.WriteLine($"Critical failure in Step {stepNumber:000}");
24+
}
25+
stopwatch.Stop();
26+
Debug.WriteLine($"Total processing time: {stopwatch.ElapsedMilliseconds} ms");
27+
});
2528
}
2629
}
2730

@@ -31,19 +34,22 @@ public class BatchTraceLogCmd : ExternalCommand
3134
{
3235
public override void Execute()
3336
{
34-
var stopwatch = Stopwatch.StartNew();
35-
stopwatch.Start();
36-
for (var stepNumber = 1; stepNumber <= 10000; stepNumber++)
37+
Task.Run(() =>
3738
{
38-
Trace.WriteLine($"Processing batch item Step {stepNumber}");
39-
Trace.WriteLine($"Batch processing metrics for Step {stepNumber}");
40-
Trace.WriteLine($"Completed processing Step {stepNumber:000}");
41-
Trace.WriteLine($"Performance warning for Step {stepNumber:000}");
42-
Trace.WriteLine($"Failed to process Step {stepNumber:000}");
43-
Trace.WriteLine($"Critical failure in Step {stepNumber:000}");
44-
}
45-
stopwatch.Stop();
46-
Trace.WriteLine($"Total processing time: {stopwatch.ElapsedMilliseconds} ms");
39+
var stopwatch = Stopwatch.StartNew();
40+
stopwatch.Start();
41+
for (var stepNumber = 1; stepNumber <= 10000; stepNumber++)
42+
{
43+
Trace.WriteLine($"Processing batch item Step {stepNumber}");
44+
Trace.WriteLine($"Batch processing metrics for Step {stepNumber}");
45+
Trace.WriteLine($"Completed processing Step {stepNumber:000}");
46+
Trace.WriteLine($"Performance warning for Step {stepNumber:000}");
47+
Trace.WriteLine($"Failed to process Step {stepNumber:000}");
48+
Trace.WriteLine($"Critical failure in Step {stepNumber:000}");
49+
}
50+
stopwatch.Stop();
51+
Trace.WriteLine($"Total processing time: {stopwatch.ElapsedMilliseconds} ms");
52+
});
4753
}
4854
}
4955

@@ -53,19 +59,22 @@ public class BatchConsoleLogCmd : ExternalCommand
5359
{
5460
public override void Execute()
5561
{
56-
var stopwatch = Stopwatch.StartNew();
57-
stopwatch.Start();
58-
for (var stepNumber = 1; stepNumber <= 10000; stepNumber++)
62+
Task.Run(() =>
5963
{
60-
Console.WriteLine($"Processing batch item Step {stepNumber}");
61-
Console.WriteLine($"Batch processing metrics for Step {stepNumber}");
62-
Console.WriteLine($"Completed processing Step {stepNumber:000}");
63-
Console.WriteLine($"Performance warning for Step {stepNumber:000}");
64-
Console.WriteLine($"Failed to process Step {stepNumber:000}");
65-
Console.WriteLine($"Critical failure in Step {stepNumber:000}");
66-
}
67-
stopwatch.Stop();
68-
Console.WriteLine($"Total processing time: {stopwatch.ElapsedMilliseconds} ms");
64+
var stopwatch = Stopwatch.StartNew();
65+
stopwatch.Start();
66+
for (var stepNumber = 1; stepNumber <= 10000; stepNumber++)
67+
{
68+
Console.WriteLine($"Processing batch item Step {stepNumber}");
69+
Console.WriteLine($"Batch processing metrics for Step {stepNumber}");
70+
Console.WriteLine($"Completed processing Step {stepNumber:000}");
71+
Console.WriteLine($"Performance warning for Step {stepNumber:000}");
72+
Console.WriteLine($"Failed to process Step {stepNumber:000}");
73+
Console.WriteLine($"Critical failure in Step {stepNumber:000}");
74+
}
75+
stopwatch.Stop();
76+
Console.WriteLine($"Total processing time: {stopwatch.ElapsedMilliseconds} ms");
77+
});
6978
}
7079
}
7180

source/RevitDevTool/Utils/LoggerConfigUtils.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ private static LoggerConfiguration WithRichTextBox(
2828
RichTextBox richTextBox,
2929
Serilog.Sinks.RichTextBoxForms.Themes.Theme textTheme,
3030
out RichTextBoxSink sink,
31-
int maxLogLines = int.MaxValue,
31+
int maxLogLines = 1000,
3232
bool autoScroll = true)
3333
{
3434
return config.WriteTo.RichTextBox(

0 commit comments

Comments
 (0)