[plugin/log] Expand {combined} and {common} in log format (#5230)

This PR tries to address the issue raised in 5223 where `{combined}`
or `{common}` in log format will not expand when `{combined}` or `{common}`
is not the only token in the format.

This PR fixes 5223.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
This commit is contained in:
Yong Tang
2022-03-07 06:49:56 -08:00
committed by GitHub
parent 4b864a97d1
commit e391a39322
2 changed files with 24 additions and 10 deletions

View File

@@ -129,6 +129,26 @@ func TestLogParse(t *testing.T) {
{`log {
unknown
}`, true, []Rule{}},
{`log example.org "{combined} {/forward/upstream}"`, false, []Rule{{
NameScope: "example.org.",
Format: CombinedLogFormat + " {/forward/upstream}",
Class: map[response.Class]struct{}{response.All: {}},
}}},
{`log example.org "{common} {/forward/upstream}"`, false, []Rule{{
NameScope: "example.org.",
Format: CommonLogFormat + " {/forward/upstream}",
Class: map[response.Class]struct{}{response.All: {}},
}}},
{`log example.org "{when} {combined} {/forward/upstream}"`, false, []Rule{{
NameScope: "example.org.",
Format: "{when} " + CombinedLogFormat + " {/forward/upstream}",
Class: map[response.Class]struct{}{response.All: {}},
}}},
{`log example.org "{when} {common} {/forward/upstream}"`, false, []Rule{{
NameScope: "example.org.",
Format: "{when} " + CommonLogFormat + " {/forward/upstream}",
Class: map[response.Class]struct{}{response.All: {}},
}}},
}
for i, test := range tests {
c := caddy.NewTestController("dns", test.inputLogRules)
@@ -141,7 +161,7 @@ func TestLogParse(t *testing.T) {
i, test.inputLogRules, err)
}
if len(actualLogRules) != len(test.expectedLogRules) {
t.Fatalf("Test %d expected %d no of Log rules, but got %d ",
t.Fatalf("Test %d expected %d no of Log rules, but got %d",
i, len(test.expectedLogRules), len(actualLogRules))
}
for j, actualLogRule := range actualLogRules {