Module: Philiprehberger::StructuredLogger::OutputBuilder
- Defined in:
- lib/philiprehberger/structured_logger/logger.rb
Overview
Builds output configuration from constructor options.
Class Method Summary collapse
- .build_hash_output(out, async, buffer_size) ⇒ Object
- .build_multi(outputs, default_formatter, async, buffer_size) ⇒ Object
- .build_single(output, formatter, async, buffer_size) ⇒ Object
- .call(opts, async, buffer_size) ⇒ Object
Class Method Details
.build_hash_output(out, async, buffer_size) ⇒ Object
242 243 244 245 246 |
# File 'lib/philiprehberger/structured_logger/logger.rb', line 242 def build_hash_output(out, async, buffer_size) io = async ? AsyncWriter.new(out[:io], buffer_size: buffer_size) : out[:io] fmt = StructuredLogger.resolve_formatter(out[:formatter]) { io: io, level: out[:level], formatter: fmt } end |
.build_multi(outputs, default_formatter, async, buffer_size) ⇒ Object
231 232 233 234 235 236 237 238 239 240 |
# File 'lib/philiprehberger/structured_logger/logger.rb', line 231 def build_multi(outputs, default_formatter, async, buffer_size) outputs.map do |out| if out.is_a?(Hash) build_hash_output(out, async, buffer_size) else io = async ? AsyncWriter.new(out, buffer_size: buffer_size) : out { io: io, level: nil, formatter: StructuredLogger.resolve_formatter(default_formatter) } end end end |
.build_single(output, formatter, async, buffer_size) ⇒ Object
248 249 250 251 252 |
# File 'lib/philiprehberger/structured_logger/logger.rb', line 248 def build_single(output, formatter, async, buffer_size) io = output || $stdout io = AsyncWriter.new(io, buffer_size: buffer_size) if async [{ io: io, level: nil, formatter: StructuredLogger.resolve_formatter(formatter) }] end |
.call(opts, async, buffer_size) ⇒ Object
222 223 224 225 226 227 228 229 |
# File 'lib/philiprehberger/structured_logger/logger.rb', line 222 def call(opts, async, buffer_size) outputs = opts[:outputs] if outputs build_multi(outputs, opts[:formatter], async, buffer_size) else build_single(opts[:output], opts[:formatter], async, buffer_size) end end |