Improve verbose mode output formatting
This commit is contained in:
parent
8291f1bcfd
commit
332bb1a416
@ -31,3 +31,12 @@ Feature: CLI verbose option
|
||||
"""
|
||||
When I successfully execute the recipe with option -v
|
||||
Then the output must match /say_hello.+ action: echo/
|
||||
|
||||
Scenario: formats message with our simple logger
|
||||
Given a recipe with:
|
||||
"""
|
||||
task :say_hello do
|
||||
end
|
||||
"""
|
||||
When I successfully execute the recipe with option -v
|
||||
Then the output must match /\ATask:.+say_hello.*\n.*condition/
|
||||
|
@ -28,6 +28,7 @@ require 'producer/core/condition'
|
||||
require 'producer/core/condition/dsl'
|
||||
require 'producer/core/env'
|
||||
require 'producer/core/errors'
|
||||
require 'producer/core/logger_formatter'
|
||||
require 'producer/core/prompter'
|
||||
require 'producer/core/recipe'
|
||||
require 'producer/core/recipe/dsl'
|
||||
|
@ -9,9 +9,6 @@ module Producer
|
||||
@output = output
|
||||
@registry = registry
|
||||
@remote = remote
|
||||
@logger = Logger.new(output)
|
||||
|
||||
self.log_level = Logger::ERROR
|
||||
end
|
||||
|
||||
def remote
|
||||
@ -26,6 +23,15 @@ module Producer
|
||||
@registry[key] = value
|
||||
end
|
||||
|
||||
def logger
|
||||
@logger ||= begin
|
||||
logger = Logger.new(output)
|
||||
logger.level = Logger::ERROR
|
||||
logger.formatter = LoggerFormatter.new
|
||||
logger
|
||||
end
|
||||
end
|
||||
|
||||
def log(message)
|
||||
logger.info message
|
||||
end
|
||||
|
9
lib/producer/core/logger_formatter.rb
Normal file
9
lib/producer/core/logger_formatter.rb
Normal file
@ -0,0 +1,9 @@
|
||||
module Producer
|
||||
module Core
|
||||
class LoggerFormatter < Logger::Formatter
|
||||
def call(severity, datetime, progname, message)
|
||||
message + "\n"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
@ -75,6 +75,10 @@ module Producer::Core
|
||||
it 'has a log level of ERROR' do
|
||||
expect(env.log_level).to eq Logger::ERROR
|
||||
end
|
||||
|
||||
it 'uses our formatter' do
|
||||
expect(env.logger.formatter).to be_a LoggerFormatter
|
||||
end
|
||||
end
|
||||
|
||||
describe '#remote' do
|
||||
|
18
spec/producer/core/logger_formatter_spec.rb
Normal file
18
spec/producer/core/logger_formatter_spec.rb
Normal file
@ -0,0 +1,18 @@
|
||||
require 'spec_helper'
|
||||
|
||||
module Producer::Core
|
||||
describe LoggerFormatter do
|
||||
describe '#call' do
|
||||
let(:severity) { double 'severity' }
|
||||
let(:datetime) { double 'datetime' }
|
||||
let(:progname) { double 'progname' }
|
||||
let(:message) { 'some message' }
|
||||
|
||||
subject { described_class.new.call(severity, datetime, progname, message) }
|
||||
|
||||
it 'returns the given message with a line separator' do
|
||||
expect(subject).to eq "#{message}\n"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user