aboutsummaryrefslogtreecommitdiffhomepage
path: root/caddyconfig/httpcaddyfile/options_test.go
diff options
context:
space:
mode:
authorAaron Taylor <[email protected]>2021-03-12 15:00:02 -0500
committerGitHub <[email protected]>2021-03-12 13:00:02 -0700
commit2a127ac3d1650052f39e93f277e1dfd8c7c730e4 (patch)
tree912bb9a181d0a4139b5b3320ff1bb8c938da5c04 /caddyconfig/httpcaddyfile/options_test.go
parent802f80c3821940825ec278e1d9c153a321e956a9 (diff)
downloadcaddy-2a127ac3d1650052f39e93f277e1dfd8c7c730e4.tar.gz
caddy-2a127ac3d1650052f39e93f277e1dfd8c7c730e4.zip
caddyconfig: add global option for configuring loggers (#4028)
This change is aimed at enhancing the logging module within the Caddyfile directive to allow users to configure logs other than the HTTP access log stream, which is the current capability of the Caddyfile [1]. The intent here is to leverage the same syntax as the server log directive at a global level, so that similar customizations can be added without needing to resort to a JSON-based configuration. Discussion for this approach happened in the referenced issue. Closes https://github.com/caddyserver/caddy/issues/3958 [1] https://caddyserver.com/docs/caddyfile/directives/log
Diffstat (limited to 'caddyconfig/httpcaddyfile/options_test.go')
-rw-r--r--caddyconfig/httpcaddyfile/options_test.go64
1 files changed, 64 insertions, 0 deletions
diff --git a/caddyconfig/httpcaddyfile/options_test.go b/caddyconfig/httpcaddyfile/options_test.go
new file mode 100644
index 000000000..bc9e88134
--- /dev/null
+++ b/caddyconfig/httpcaddyfile/options_test.go
@@ -0,0 +1,64 @@
+package httpcaddyfile
+
+import (
+ "testing"
+
+ "github.com/caddyserver/caddy/v2/caddyconfig/caddyfile"
+ _ "github.com/caddyserver/caddy/v2/modules/logging"
+)
+
+func TestGlobalLogOptionSyntax(t *testing.T) {
+ for i, tc := range []struct {
+ input string
+ output string
+ expectError bool
+ }{
+ // NOTE: Additional test cases of successful Caddyfile parsing
+ // are present in: caddytest/integration/caddyfile_adapt/
+ {
+ input: `{
+ log default
+ }
+ `,
+ output: `{}`,
+ expectError: false,
+ },
+ {
+ input: `{
+ log example {
+ output file foo.log
+ }
+ log example {
+ format json
+ }
+ }
+ `,
+ expectError: true,
+ },
+ {
+ input: `{
+ log example /foo {
+ output file foo.log
+ }
+ }
+ `,
+ expectError: true,
+ },
+ } {
+
+ adapter := caddyfile.Adapter{
+ ServerType: ServerType{},
+ }
+
+ out, _, err := adapter.Adapt([]byte(tc.input), nil)
+
+ if err != nil != tc.expectError {
+ t.Errorf("Test %d error expectation failed Expected: %v, got %v", i, tc.expectError, err)
+ continue
+ }
+
+ if string(out) != tc.output {
+ t.Errorf("Test %d error output mismatch Expected: %s, got %s", i, tc.output, out)
+ }
+ }
+}