mirror of
https://github.com/coredns/coredns.git
synced 2025-10-28 00:34:24 -04:00
[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:
@@ -53,15 +53,9 @@ func logParse(c *caddy.Controller) ([]Rule, error) {
|
|||||||
format := DefaultLogFormat
|
format := DefaultLogFormat
|
||||||
|
|
||||||
if strings.Contains(args[len(args)-1], "{") {
|
if strings.Contains(args[len(args)-1], "{") {
|
||||||
switch args[len(args)-1] {
|
|
||||||
case "{common}":
|
|
||||||
format = CommonLogFormat
|
|
||||||
case "{combined}":
|
|
||||||
format = CombinedLogFormat
|
|
||||||
default:
|
|
||||||
format = args[len(args)-1]
|
format = args[len(args)-1]
|
||||||
}
|
format = strings.Replace(format, "{common}", CommonLogFormat, -1)
|
||||||
|
format = strings.Replace(format, "{combined}", CombinedLogFormat, -1)
|
||||||
args = args[:len(args)-1]
|
args = args[:len(args)-1]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -129,6 +129,26 @@ func TestLogParse(t *testing.T) {
|
|||||||
{`log {
|
{`log {
|
||||||
unknown
|
unknown
|
||||||
}`, true, []Rule{}},
|
}`, 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 {
|
for i, test := range tests {
|
||||||
c := caddy.NewTestController("dns", test.inputLogRules)
|
c := caddy.NewTestController("dns", test.inputLogRules)
|
||||||
@@ -141,7 +161,7 @@ func TestLogParse(t *testing.T) {
|
|||||||
i, test.inputLogRules, err)
|
i, test.inputLogRules, err)
|
||||||
}
|
}
|
||||||
if len(actualLogRules) != len(test.expectedLogRules) {
|
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))
|
i, len(test.expectedLogRules), len(actualLogRules))
|
||||||
}
|
}
|
||||||
for j, actualLogRule := range actualLogRules {
|
for j, actualLogRule := range actualLogRules {
|
||||||
|
|||||||
Reference in New Issue
Block a user