Help improve this documentation
This documentation is still new and evolving. If you spot any mistakes, unclear explanations, or missing details, please open an issue.
Your feedback helps us improve!
Logger/log operatorsโ
This page lists all operators available in the observability/log
sub-package of ro.
Installโ
First, import the sub-package in your project:
go get -u github.com/samber/ro/plugins/observability/log
Logโ
Logs observable events.
import (
"github.com/samber/ro"
rolog "github.com/samber/ro/plugins/observability/log"
)
obs := ro.Pipe(
ro.Just(1, 2, 3),
rolog.Log[int](),
)
sub := obs.Subscribe(ro.PrintObserver[int]())
defer sub.Unsubscribe()
// Logs: [1]
// Logs: [2]
// Logs: [3]
// Next: 1
// Next: 2
// Next: 3
// CompletedVariant:Similar:Prototype:func Log[T any]()
LogWithPrefixโ
Logs observable events with a custom prefix.
import (
"github.com/samber/ro"
rolog "github.com/samber/ro/plugins/observability/log"
)
obs := ro.Pipe(
ro.Just(1, 2, 3),
rolog.LogWithPrefix[int]("MyStream"),
)
sub := obs.Subscribe(ro.PrintObserver[int]())
defer sub.Unsubscribe()
// Logs: MyStream ro.Next: 1
// Logs: MyStream ro.Next: 2
// Logs: MyStream ro.Next: 3
// Next: 1
// Next: 2
// Next: 3
// CompletedSimilar:Prototype:func LogWithPrefix[T any](prefix string)
FatalOnErrorWithPrefixโ
Terminates the application on error with prefixed logging.
import (
"errors"
"github.com/samber/ro"
rolog "github.com/samber/ro/plugins/observability/log"
)
obs := ro.Pipe(
ro.Just(1, 2),
ro.Throw[int](errors.New("fatal error")),
rolog.FatalOnErrorWithPrefix[int]("Critical"),
)
sub := obs.Subscribe(ro.PrintObserver[int]())
defer sub.Unsubscribe()
// Next: 1
// Next: 2
// Logs: Critical ro.Error: fatal error
// Application terminates with fatal errorSimilar:Prototype:func FatalOnErrorWithPrefix[T any](prefix string)
FatalOnErrorโ
Calls fatal on error.
import (
"errors"
"github.com/samber/ro"
rolog "github.com/samber/ro/plugins/observability/log"
)
obs := ro.Pipe(
ro.Throw[string](errors.New("fatal error")),
rolog.FatalOnError[string](),
)
sub := obs.Subscribe(ro.PrintObserver[string]())
defer sub.Unsubscribe()
// Fatal: fatal error
// (program exits)Similar:Prototype:func FatalOnError[T any]()