Skip to content

Commit 3aa8a36

Browse files
#111: Provide an opt out for using dots in structured logging keys
1 parent 5a3f285 commit 3aa8a36

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

src/.editorconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ guidelines=80 1px dotted 80FF00FF, 100 1px dashed B0FF0000, 120 2px solid FFFF00
1616
csharp_new_line_before_members_in_object_initializers=false
1717
csharp_preferred_modifier_order=public, private, protected, internal, new, abstract, virtual, sealed, override, static, readonly, extern, unsafe, volatile, async:suggestion
1818
csharp_style_var_elsewhere=true:suggestion
19-
csharp_style_var_for_built_in_types=true:suggestion
19+
csharp_style_var_for_built_in_types=false
2020
csharp_style_var_when_type_is_apparent=true:suggestion
2121
dotnet_style_parentheses_in_arithmetic_binary_operators=never_if_unnecessary:none
2222
dotnet_style_parentheses_in_other_binary_operators=never_if_unnecessary:none

src/Stravaig.Configuration.Diagnostics.Core/Renderers/Renderer.cs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ namespace Stravaig.Configuration.Diagnostics.Renderers
88
public abstract class Renderer
99
{
1010
private const string PlaceholderPartJoin = "_";
11+
12+
private bool _convertDotToUnderscore = false;
1113

1214
/// <summary>
1315
/// Creates a safely named placeholder for use in structured renderers.
@@ -17,9 +19,9 @@ public abstract class Renderer
1719
protected string Placeholder(params string[] parts)
1820
{
1921
StringBuilder placeholderBuilder = new StringBuilder();
20-
placeholderBuilder.Append("{");
22+
placeholderBuilder.Append('{');
2123
int partPos = 0;
22-
foreach (var part in parts)
24+
foreach (string part in parts)
2325
{
2426
if (string.IsNullOrWhiteSpace(part))
2527
continue;
@@ -31,18 +33,20 @@ protected string Placeholder(params string[] parts)
3133
foreach (char character in part)
3234
{
3335
if (charPos == 0 && character >= '0' && character <= '9')
34-
placeholderBuilder.Append("_");
35-
if (char.IsLetterOrDigit(character) || character == '.')
36+
placeholderBuilder.Append('_');
37+
if (char.IsLetterOrDigit(character))
3638
placeholderBuilder.Append(character);
39+
if (character == '.')
40+
placeholderBuilder.Append(_convertDotToUnderscore ? '_' : '.');
3741
else
38-
placeholderBuilder.Append("_");
42+
placeholderBuilder.Append('_');
3943
charPos++;
4044
}
4145

4246
partPos++;
4347
}
4448

45-
placeholderBuilder.Append("}");
49+
placeholderBuilder.Append('}');
4650
return placeholderBuilder.ToString();
4751
}
4852
}

0 commit comments

Comments
 (0)