mirror of
				https://github.com/caddyserver/caddy.git
				synced 2025-11-04 03:27:23 -05:00 
			
		
		
		
	log: default logger should respect {in,ex}clude (#6995)
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				Tests / test (./cmd/caddy/caddy, ~1.24.1, ubuntu-latest, 0, 1.24, linux) (push) Failing after 1m48s
				
			
		
			
				
	
				Tests / test (s390x on IBM Z) (push) Has been skipped
				
			
		
			
				
	
				Tests / goreleaser-check (push) Has been skipped
				
			
		
			
				
	
				Cross-Build / build (~1.24.1, 1.24, aix) (push) Successful in 1m36s
				
			
		
			
				
	
				Cross-Build / build (~1.24.1, 1.24, darwin) (push) Successful in 1m16s
				
			
		
			
				
	
				Cross-Build / build (~1.24.1, 1.24, dragonfly) (push) Successful in 1m14s
				
			
		
			
				
	
				Cross-Build / build (~1.24.1, 1.24, freebsd) (push) Successful in 1m14s
				
			
		
			
				
	
				Cross-Build / build (~1.24.1, 1.24, illumos) (push) Successful in 1m13s
				
			
		
			
				
	
				Cross-Build / build (~1.24.1, 1.24, linux) (push) Successful in 1m14s
				
			
		
			
				
	
				Cross-Build / build (~1.24.1, 1.24, netbsd) (push) Successful in 1m15s
				
			
		
			
				
	
				Cross-Build / build (~1.24.1, 1.24, openbsd) (push) Successful in 1m14s
				
			
		
			
				
	
				Cross-Build / build (~1.24.1, 1.24, solaris) (push) Successful in 1m15s
				
			
		
			
				
	
				Cross-Build / build (~1.24.1, 1.24, windows) (push) Successful in 1m16s
				
			
		
			
				
	
				Lint / lint (ubuntu-latest, linux) (push) Successful in 1m49s
				
			
		
			
				
	
				Lint / govulncheck (push) Successful in 1m16s
				
			
		
			
				
	
				Tests / test (./cmd/caddy/caddy, ~1.24.1, macos-14, 0, 1.24, mac) (push) Has been cancelled
				
			
		
			
				
	
				Tests / test (./cmd/caddy/caddy.exe, ~1.24.1, windows-latest, True, 1.24, windows) (push) Has been cancelled
				
			
		
			
				
	
				Lint / lint (macos-14, mac) (push) Has been cancelled
				
			
		
			
				
	
				Lint / lint (windows-latest, windows) (push) Has been cancelled
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	Tests / test (./cmd/caddy/caddy, ~1.24.1, ubuntu-latest, 0, 1.24, linux) (push) Failing after 1m48s
				
			Tests / test (s390x on IBM Z) (push) Has been skipped
				
			Tests / goreleaser-check (push) Has been skipped
				
			Cross-Build / build (~1.24.1, 1.24, aix) (push) Successful in 1m36s
				
			Cross-Build / build (~1.24.1, 1.24, darwin) (push) Successful in 1m16s
				
			Cross-Build / build (~1.24.1, 1.24, dragonfly) (push) Successful in 1m14s
				
			Cross-Build / build (~1.24.1, 1.24, freebsd) (push) Successful in 1m14s
				
			Cross-Build / build (~1.24.1, 1.24, illumos) (push) Successful in 1m13s
				
			Cross-Build / build (~1.24.1, 1.24, linux) (push) Successful in 1m14s
				
			Cross-Build / build (~1.24.1, 1.24, netbsd) (push) Successful in 1m15s
				
			Cross-Build / build (~1.24.1, 1.24, openbsd) (push) Successful in 1m14s
				
			Cross-Build / build (~1.24.1, 1.24, solaris) (push) Successful in 1m15s
				
			Cross-Build / build (~1.24.1, 1.24, windows) (push) Successful in 1m16s
				
			Lint / lint (ubuntu-latest, linux) (push) Successful in 1m49s
				
			Lint / govulncheck (push) Successful in 1m16s
				
			Tests / test (./cmd/caddy/caddy, ~1.24.1, macos-14, 0, 1.24, mac) (push) Has been cancelled
				
			Tests / test (./cmd/caddy/caddy.exe, ~1.24.1, windows-latest, True, 1.24, windows) (push) Has been cancelled
				
			Lint / lint (macos-14, mac) (push) Has been cancelled
				
			Lint / lint (windows-latest, windows) (push) Has been cancelled
				
			* log: default logger should respect `{in,ex}clude`
Signed-off-by: Mohammed Al Sahaf <msaa1990@gmail.com>
* add tests
Signed-off-by: Mohammed Al Sahaf <msaa1990@gmail.com>
---------
Signed-off-by: Mohammed Al Sahaf <msaa1990@gmail.com>
			
			
This commit is contained in:
		
							parent
							
								
									320c57291d
								
							
						
					
					
						commit
						9f7148392a
					
				@ -162,7 +162,9 @@ func (logging *Logging) setupNewDefault(ctx Context) error {
 | 
				
			|||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return fmt.Errorf("setting up default log: %v", err)
 | 
							return fmt.Errorf("setting up default log: %v", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	newDefault.logger = zap.New(newDefault.CustomLog.core, options...)
 | 
					
 | 
				
			||||||
 | 
						filteringCore := &filteringCore{newDefault.CustomLog.core, newDefault.CustomLog}
 | 
				
			||||||
 | 
						newDefault.logger = zap.New(filteringCore, options...)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// redirect the default caddy logs
 | 
						// redirect the default caddy logs
 | 
				
			||||||
	defaultLoggerMu.Lock()
 | 
						defaultLoggerMu.Lock()
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										106
									
								
								logging_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										106
									
								
								logging_test.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,106 @@
 | 
				
			|||||||
 | 
					// Copyright 2015 Matthew Holt and The Caddy Authors
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					// you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					// You may obtain a copy of the License at
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//     http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					// distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					// See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					// limitations under the License.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package caddy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import "testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestCustomLog_loggerAllowed(t *testing.T) {
 | 
				
			||||||
 | 
						type fields struct {
 | 
				
			||||||
 | 
							BaseLog BaseLog
 | 
				
			||||||
 | 
							Include []string
 | 
				
			||||||
 | 
							Exclude []string
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						type args struct {
 | 
				
			||||||
 | 
							name     string
 | 
				
			||||||
 | 
							isModule bool
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						tests := []struct {
 | 
				
			||||||
 | 
							name   string
 | 
				
			||||||
 | 
							fields fields
 | 
				
			||||||
 | 
							args   args
 | 
				
			||||||
 | 
							want   bool
 | 
				
			||||||
 | 
						}{
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								name: "include",
 | 
				
			||||||
 | 
								fields: fields{
 | 
				
			||||||
 | 
									Include: []string{"foo"},
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								args: args{
 | 
				
			||||||
 | 
									name:     "foo",
 | 
				
			||||||
 | 
									isModule: true,
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								want: true,
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								name: "exclude",
 | 
				
			||||||
 | 
								fields: fields{
 | 
				
			||||||
 | 
									Exclude: []string{"foo"},
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								args: args{
 | 
				
			||||||
 | 
									name:     "foo",
 | 
				
			||||||
 | 
									isModule: true,
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								want: false,
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								name: "include and exclude",
 | 
				
			||||||
 | 
								fields: fields{
 | 
				
			||||||
 | 
									Include: []string{"foo"},
 | 
				
			||||||
 | 
									Exclude: []string{"foo"},
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								args: args{
 | 
				
			||||||
 | 
									name:     "foo",
 | 
				
			||||||
 | 
									isModule: true,
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								want: false,
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								name: "include and exclude (longer namespace)",
 | 
				
			||||||
 | 
								fields: fields{
 | 
				
			||||||
 | 
									Include: []string{"foo.bar"},
 | 
				
			||||||
 | 
									Exclude: []string{"foo"},
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								args: args{
 | 
				
			||||||
 | 
									name:     "foo.bar",
 | 
				
			||||||
 | 
									isModule: true,
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								want: true,
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								name: "excluded module is not printed",
 | 
				
			||||||
 | 
								fields: fields{
 | 
				
			||||||
 | 
									Include: []string{"admin.api.load"},
 | 
				
			||||||
 | 
									Exclude: []string{"admin.api"},
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								args: args{
 | 
				
			||||||
 | 
									name:     "admin.api",
 | 
				
			||||||
 | 
									isModule: false,
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								want: false,
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						for _, tt := range tests {
 | 
				
			||||||
 | 
							t.Run(tt.name, func(t *testing.T) {
 | 
				
			||||||
 | 
								cl := &CustomLog{
 | 
				
			||||||
 | 
									BaseLog: tt.fields.BaseLog,
 | 
				
			||||||
 | 
									Include: tt.fields.Include,
 | 
				
			||||||
 | 
									Exclude: tt.fields.Exclude,
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								if got := cl.loggerAllowed(tt.args.name, tt.args.isModule); got != tt.want {
 | 
				
			||||||
 | 
									t.Errorf("CustomLog.loggerAllowed() = %v, want %v", got, tt.want)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user