Source File
spy.go
Belonging Package
go.uber.org/fx/internal/fxlog
// Copyright (c) 2020-2021 Uber Technologies, Inc.//// Permission is hereby granted, free of charge, to any person obtaining a copy// of this software and associated documentation files (the "Software"), to deal// in the Software without restriction, including without limitation the rights// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell// copies of the Software, and to permit persons to whom the Software is// furnished to do so, subject to the following conditions://// The above copyright notice and this permission notice shall be included in// all copies or substantial portions of the Software.//// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN// THE SOFTWARE.package fxlogimport ()// Events is a list of events captured by fxlog.Spy.type Events []fxevent.Event// Len returns the number of events in this list.func ( Events) () int { return len() }// SelectByTypeName returns a new list with only events matching the specified// type.func ( Events) ( string) Events {var Eventsfor , := range {if reflect.TypeOf().Elem().Name() == {= append(, )}}return}// Spy is an Fx event logger that captures emitted events and/or logged// statements. It may be used in tests of Fx logs.type Spy struct {mu sync.RWMutexevents Events}var _ fxevent.Logger = &Spy{}// LogEvent appends an Event.func ( *Spy) ( fxevent.Event) {.mu.Lock().events = append(.events, ).mu.Unlock()}// Events returns all captured events.func ( *Spy) () Events {.mu.RLock()defer .mu.RUnlock():= make(Events, len(.events))copy(, .events)return}// EventTypes returns all captured event types.func ( *Spy) () []string {.mu.RLock()defer .mu.RUnlock():= make([]string, len(.events))for , := range .events {[] = reflect.TypeOf().Elem().Name()}return}// Reset clears all messages and events from the Spy.func ( *Spy) () {.mu.Lock().events = .events[:0].mu.Unlock()}
![]() |
The pages are generated with Golds v0.8.2. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |