Quick actions

cmd+k|ctrl+k

Navigation

Languages

Logger combinators

Snippet info

Language

Raku

Visibility

unlisted

Author

rightfold

Created

2019-07-19T08:22:31Z

Updated

2019-07-19T08:23:16Z

#| Filter incoming messages according to predicate.
sub filter(&logger, &pred) {
    -> $msg { logger($msg) if pred($msg) };
}

#| Transform incoming messages, e.g. censor passwords, add timestamp, etc.
sub transform(&logger, &func) {
    -> $msg { logger(func($msg)) };
}

my &logger = &say;

my &timed-logger = transform(&logger, { "{now} {$_}" });

logger("hello world");
timed-logger("hello world");
INFO