Implement a Custom Handler
masterTo create a custom handler, implement a class with an initialize method (to receive dependencies like output, config, or formatter) and a call method that accepts an event object.
The event object provides:
message: Array of message parts.fields: Structured data hash.metadata: Metadata hash (pid, date, time, file).
class MyHandler
def initialize(output: nil, config: nil, label: nil)
@label = label
@output = output
end
def call(event)
@output.puts "(#{@label}) #{event.message.join}"
end
end
# Registering the custom handler
logger = TTY::Logger.new do |config|
config.handlers = [[MyHandler, label: "myhandler"]]
end