Documentation
¶
Index ¶
- func FatalOnError[T any](logger *logrus.Logger) func(ro.Observable[T]) ro.Observable[T]
- func Log[T any](logger *logrus.Logger, level logrus.Level) func(ro.Observable[T]) ro.Observable[T]
- func LogWithNotification[T any](logger *logrus.Logger, level logrus.Level) func(ro.Observable[T]) ro.Observable[T]
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FatalOnError ¶
func FatalOnError[T any](logger *logrus.Logger) func(ro.Observable[T]) ro.Observable[T]
func Log ¶
func Log[T any](logger *logrus.Logger, level logrus.Level) func(ro.Observable[T]) ro.Observable[T]
Example ¶
// Create a logger that writes to a buffer
buff := bufio.NewWriter(os.Stdout)
logger := logrus.New()
logger.SetOutput(buff)
logger.SetLevel(logrus.InfoLevel)
logger.SetFormatter(&logrus.TextFormatter{
DisableColors: true,
DisableTimestamp: true,
})
defer buff.Flush()
observable := ro.Pipe1(
ro.Just(1, 2, 3, 4, 5),
Log[int](logger, logrus.InfoLevel),
)
subscription := observable.Subscribe(ro.NoopObserver[int]())
defer subscription.Unsubscribe()
Output: level=info msg="ro.Next: 1" level=info msg="ro.Next: 2" level=info msg="ro.Next: 3" level=info msg="ro.Next: 4" level=info msg="ro.Next: 5" level=info msg=ro.Complete
Example (WithContext) ¶
// Create a logger that writes to a buffer
buff := bufio.NewWriter(os.Stdout)
logger := logrus.New()
logger.SetOutput(buff)
logger.SetLevel(logrus.InfoLevel)
logger.SetFormatter(&logrus.TextFormatter{
DisableColors: true,
DisableTimestamp: true,
})
defer buff.Flush()
ctx := context.WithValue(context.Background(), "request_id", "12345")
observable := ro.Pipe1(
ro.Just(1, 2, 3),
Log[int](logger, logrus.InfoLevel),
)
subscription := observable.SubscribeWithContext(ctx, ro.NoopObserver[int]())
defer subscription.Unsubscribe()
Output: level=info msg="ro.Next: 1" level=info msg="ro.Next: 2" level=info msg="ro.Next: 3" level=info msg=ro.Complete
Example (WithDifferentLevels) ¶
// Create a logger that writes to a buffer
buff := bufio.NewWriter(os.Stdout)
logger := logrus.New()
logger.SetOutput(buff)
logger.SetLevel(logrus.DebugLevel)
logger.SetFormatter(&logrus.TextFormatter{
DisableColors: true,
DisableTimestamp: true,
})
defer buff.Flush()
observable := ro.Pipe1(
ro.Just(1, 2, 3),
Log[int](logger, logrus.DebugLevel),
)
subscription := observable.Subscribe(ro.NoopObserver[int]())
defer subscription.Unsubscribe()
Output: level=debug msg="ro.Next: 1" level=debug msg="ro.Next: 2" level=debug msg="ro.Next: 3" level=debug msg=ro.Complete
func LogWithNotification ¶
func LogWithNotification[T any](logger *logrus.Logger, level logrus.Level) func(ro.Observable[T]) ro.Observable[T]
Example ¶
// Create a logger that writes to a buffer
buff := bufio.NewWriter(os.Stdout)
logger := logrus.New()
logger.SetOutput(buff)
logger.SetLevel(logrus.InfoLevel)
logger.SetFormatter(&logrus.TextFormatter{
DisableColors: true,
DisableTimestamp: true,
})
defer buff.Flush()
observable := ro.Pipe1(
ro.Just("Hello", "World", "Golang"),
LogWithNotification[string](logger, logrus.InfoLevel),
)
subscription := observable.Subscribe(ro.NoopObserver[string]())
defer subscription.Unsubscribe()
Output: level=info msg=ro.Next value=Hello level=info msg=ro.Next value=World level=info msg=ro.Next value=Golang level=info msg=ro.Complete
Example (WithStructuredData) ¶
// Create a logger that writes to a buffer
buff := bufio.NewWriter(os.Stdout)
logger := logrus.New()
logger.SetOutput(buff)
logger.SetLevel(logrus.InfoLevel)
logger.SetFormatter(&logrus.TextFormatter{
DisableColors: true,
DisableTimestamp: true,
})
defer buff.Flush()
type User struct {
Name string
Age int
}
observable := ro.Pipe1(
ro.Just(
User{Name: "Alice", Age: 30},
User{Name: "Bob", Age: 25},
User{Name: "Charlie", Age: 35},
),
LogWithNotification[User](logger, logrus.InfoLevel),
)
subscription := observable.Subscribe(ro.NoopObserver[User]())
defer subscription.Unsubscribe()
Output: level=info msg=ro.Next value="{Alice 30}" level=info msg=ro.Next value="{Bob 25}" level=info msg=ro.Next value="{Charlie 35}" level=info msg=ro.Complete
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.