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
190 191 192 193 194 |
# File 'lib/philiprehberger/structured_logger/logger.rb', line 190 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
179 180 181 182 183 184 185 186 187 188 |
# File 'lib/philiprehberger/structured_logger/logger.rb', line 179 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
196 197 198 199 200 |
# File 'lib/philiprehberger/structured_logger/logger.rb', line 196 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
170 171 172 173 174 175 176 177 |
# File 'lib/philiprehberger/structured_logger/logger.rb', line 170 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 |