Source File
doc.go
Belonging Package
go.uber.org/fx/fxevent
// Copyright (c) 2024 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 fxevent defines a means of changing how Fx logs internal events.//// # Changing the Logger//// By default, the [ConsoleLogger] is used, writing readable logs to stderr.//// You can use the fx.WithLogger option to change this behavior// by providing a constructor that returns an alternative implementation// of the [Logger] interface.//// fx.WithLogger(func(cfg *Config) Logger {// return &MyFxLogger{...}// })//// Because WithLogger accepts a constructor,// you can pull any other types and values from inside the container,// allowing use of the same logger that your application uses.//// For example, if you're using Zap inside your application,// you can use the [ZapLogger] implementation of the interface.//// fx.New(// fx.Provide(// zap.NewProduction, // provide a *zap.Logger// ),// fx.WithLogger(// func(log *zap.Logger) fxevent.Logger {// return &fxevent.ZapLogger{Logger: log}// },// ),// )//// # Implementing a Custom Logger//// To implement a custom logger, you need to implement the [Logger] interface.// The Logger.LogEvent method accepts an [Event] object.//// [Event] is a union type that represents all the different events that Fx can emit.// You can use a type switch to handle each event type.// See 'event.go' for a list of all the possible events.//// func (l *MyFxLogger) LogEvent(e fxevent.Event) {// switch e := e.(type) {// case *fxevent.OnStartExecuting:// // ...// // ...// }// }//// The events contain enough information for observability and debugging purposes.// If you need more information in them,// feel free to open an issue to discuss the addition.package fxevent
![]() |
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. |