Merge pull request #9 from jruby-gradle/slf4j
Defaulting to SL4J instead of Log4J
This commit is contained in:
commit
5fdde70ae1
|
@ -1,6 +1,8 @@
|
|||
require 'java'
|
||||
require 'red_storm/configurator'
|
||||
require 'red_storm/environment'
|
||||
require 'red_storm/loggable'
|
||||
require 'pathname'
|
||||
|
||||
java_import 'backtype.storm.tuple.Fields'
|
||||
java_import 'backtype.storm.tuple.Values'
|
||||
|
@ -11,16 +13,13 @@ module RedStorm
|
|||
class BoltError < StandardError; end
|
||||
|
||||
class Bolt
|
||||
include Loggable
|
||||
attr_reader :collector, :context, :config
|
||||
|
||||
def self.java_proxy; "Java::RedstormStormJruby::JRubyBolt"; end
|
||||
|
||||
# DSL class methods
|
||||
|
||||
def self.log
|
||||
@log ||= Java::OrgApacheLog4j::Logger.getLogger(self.name)
|
||||
end
|
||||
|
||||
def self.output_fields(*fields)
|
||||
@fields = fields.map(&:to_s)
|
||||
end
|
||||
|
@ -59,10 +58,6 @@ module RedStorm
|
|||
|
||||
# DSL instance methods
|
||||
|
||||
def log
|
||||
self.class.log
|
||||
end
|
||||
|
||||
def unanchored_emit(*values)
|
||||
@collector.emit_tuple(Values.new(*values))
|
||||
end
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
require 'java'
|
||||
require 'red_storm/configurator'
|
||||
require 'red_storm/environment'
|
||||
require 'red_storm/loggable'
|
||||
require 'pathname'
|
||||
|
||||
module RedStorm
|
||||
module DSL
|
||||
|
@ -8,6 +10,7 @@ module RedStorm
|
|||
class SpoutError < StandardError; end
|
||||
|
||||
class Spout
|
||||
include Loggable
|
||||
attr_reader :config, :context, :collector
|
||||
|
||||
def self.java_proxy; "Java::RedstormStormJruby::JRubySpout"; end
|
||||
|
@ -18,10 +21,6 @@ module RedStorm
|
|||
@configure_block = block_given? ? configure_block : lambda {}
|
||||
end
|
||||
|
||||
def self.log
|
||||
@log ||= Java::OrgApacheLog4j::Logger.getLogger(self.name)
|
||||
end
|
||||
|
||||
def self.output_fields(*fields)
|
||||
@fields = fields.map(&:to_s)
|
||||
end
|
||||
|
@ -81,10 +80,6 @@ module RedStorm
|
|||
end
|
||||
alias_method :emit, :unreliable_emit
|
||||
|
||||
def log
|
||||
self.class.log
|
||||
end
|
||||
|
||||
# Spout proxy interface
|
||||
|
||||
def next_tuple
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
require 'java'
|
||||
require 'red_storm/configuration'
|
||||
require 'red_storm/configurator'
|
||||
require 'red_storm/loggable'
|
||||
|
||||
java_import 'backtype.storm.topology.TopologyBuilder'
|
||||
java_import 'backtype.storm.generated.SubmitOptions'
|
||||
|
@ -11,8 +12,8 @@ module RedStorm
|
|||
class TopologyDefinitionError < StandardError; end
|
||||
|
||||
class Topology
|
||||
include Loggable
|
||||
attr_reader :cluster # LocalCluster reference usable in on_submit block, for example
|
||||
|
||||
DEFAULT_SPOUT_PARALLELISM = 1
|
||||
DEFAULT_BOLT_PARALLELISM = 1
|
||||
|
||||
|
@ -101,10 +102,6 @@ module RedStorm
|
|||
end
|
||||
end
|
||||
|
||||
def self.log
|
||||
@log ||= Java::OrgApacheLog4j::Logger.getLogger(self.name)
|
||||
end
|
||||
|
||||
# def self.spout(spout_class, contructor_args = [], options = {}, &spout_block)
|
||||
def self.spout(spout_class, *args, &spout_block)
|
||||
set_topology_class!
|
||||
|
|
|
@ -2,14 +2,21 @@ require 'java'
|
|||
|
||||
module RedStorm
|
||||
module Loggable
|
||||
|
||||
def self.log
|
||||
@log ||= Java::OrgApacheLog4j::Logger.getLogger(self.name)
|
||||
def self.included(clazz)
|
||||
clazz.send(:extend, ClassMethods)
|
||||
clazz.send(:include, InstanceMethods)
|
||||
end
|
||||
|
||||
def log
|
||||
self.class.log
|
||||
module ClassMethods
|
||||
def log
|
||||
@log ||= Java::OrgSlf4j::LoggerFactory.get_logger(self.name.gsub(/::/, '.'))
|
||||
end
|
||||
end
|
||||
|
||||
module InstanceMethods
|
||||
def log
|
||||
self.class.log
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -368,13 +368,14 @@ describe RedStorm::SimpleBolt do
|
|||
# log specs are mostly the same ats in the spout specs. if these are modified, sync with spout
|
||||
describe "log statement" do
|
||||
|
||||
module Java::OrgApacheLog4j end;
|
||||
class Java::OrgApacheLog4j::Logger; end
|
||||
module Java::OrgSlf4j end;
|
||||
class Java::OrgSlf4j::Logger; end
|
||||
class Java::OrgSlf4j::LoggerFactory; end
|
||||
|
||||
describe "in class" do
|
||||
it "should proxy to storm log4j logger" do
|
||||
logger = mock(Java::OrgApacheLog4j::Logger)
|
||||
Java::OrgApacheLog4j::Logger.should_receive("getLogger").with("Bolt1").and_return(logger)
|
||||
it "should proxy to storm slf4j logger" do
|
||||
logger = mock(Java::OrgSlf4j::Logger)
|
||||
Java::OrgSlf4j::LoggerFactory.should_receive("get_logger").with("Bolt1").and_return(logger)
|
||||
logger.should_receive(:info).with("test")
|
||||
|
||||
class Bolt1 < RedStorm::SimpleBolt
|
||||
|
@ -383,10 +384,10 @@ describe RedStorm::SimpleBolt do
|
|||
end
|
||||
|
||||
it "should use own class name as logger id" do
|
||||
logger1 = mock(Java::OrgApacheLog4j::Logger)
|
||||
logger2 = mock(Java::OrgApacheLog4j::Logger)
|
||||
Java::OrgApacheLog4j::Logger.should_receive("getLogger").with("Bolt1").and_return(logger1)
|
||||
Java::OrgApacheLog4j::Logger.should_receive("getLogger").with("Bolt2").and_return(logger2)
|
||||
logger1 = mock(Java::OrgSlf4j::Logger)
|
||||
logger2 = mock(Java::OrgSlf4j::Logger)
|
||||
Java::OrgSlf4j::LoggerFactory.should_receive("get_logger").with("Bolt1").and_return(logger1)
|
||||
Java::OrgSlf4j::LoggerFactory.should_receive("get_logger").with("Bolt2").and_return(logger2)
|
||||
logger1.should_receive(:info).with("test1")
|
||||
logger2.should_receive(:info).with("test2")
|
||||
|
||||
|
@ -400,9 +401,9 @@ describe RedStorm::SimpleBolt do
|
|||
end
|
||||
|
||||
describe "in instance" do
|
||||
it "should proxy to storm log4j logger" do
|
||||
logger = mock(Java::OrgApacheLog4j::Logger)
|
||||
Java::OrgApacheLog4j::Logger.should_receive("getLogger").with("Bolt1").and_return(logger)
|
||||
it "should proxy to storm slf4j logger" do
|
||||
logger = mock(Java::OrgSlf4j::Logger)
|
||||
Java::OrgSlf4j::LoggerFactory.should_receive("get_logger").with("Bolt1").and_return(logger)
|
||||
|
||||
class Bolt1 < RedStorm::SimpleBolt
|
||||
on_init {log.info("test")}
|
||||
|
@ -414,10 +415,10 @@ describe RedStorm::SimpleBolt do
|
|||
end
|
||||
|
||||
it "should use own class name as logger id" do
|
||||
logger1 = mock(Java::OrgApacheLog4j::Logger)
|
||||
logger2 = mock(Java::OrgApacheLog4j::Logger)
|
||||
Java::OrgApacheLog4j::Logger.should_receive("getLogger").with("Bolt1").and_return(logger1)
|
||||
Java::OrgApacheLog4j::Logger.should_receive("getLogger").with("Bolt2").and_return(logger2)
|
||||
logger1 = mock(Java::OrgSlf4j::Logger)
|
||||
logger2 = mock(Java::OrgSlf4j::Logger)
|
||||
Java::OrgSlf4j::LoggerFactory.should_receive("get_logger").with("Bolt1").and_return(logger1)
|
||||
Java::OrgSlf4j::LoggerFactory.should_receive("get_logger").with("Bolt2").and_return(logger2)
|
||||
|
||||
class Bolt1 < RedStorm::SimpleBolt
|
||||
on_init {log.info("test1")}
|
||||
|
@ -434,6 +435,22 @@ describe RedStorm::SimpleBolt do
|
|||
bolt2 = Bolt2.new
|
||||
bolt2.prepare(nil, nil, nil)
|
||||
end
|
||||
|
||||
it "should conform to SLF4J Named Hierarchy when loading loggers" do
|
||||
logger = mock(Java::OrgSlf4j::Logger)
|
||||
Java::OrgSlf4j::LoggerFactory.should_receive("get_logger").with("Named.Hierarchy.Bolt").and_return(logger)
|
||||
module Named
|
||||
module Hierarchy
|
||||
class Bolt < RedStorm::SimpleBolt
|
||||
on_init {log.info("test1")}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
logger.should_receive(:info).with("test1")
|
||||
bolt = Named::Hierarchy::Bolt.new
|
||||
bolt.prepare(nil, nil, nil)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -408,13 +408,14 @@ describe RedStorm::SimpleSpout do
|
|||
# log specs are mostly the same ats in the bolt specs. if these are modified, sync with bolt
|
||||
describe "log statement" do
|
||||
|
||||
module Java::OrgApacheLog4j end;
|
||||
class Java::OrgApacheLog4j::Logger; end
|
||||
module Java::OrgSlf4j end;
|
||||
class Java::OrgSlf4j::Logger; end
|
||||
class Java::OrgSlf4j::LoggerFactory; end
|
||||
|
||||
describe "in class" do
|
||||
it "should proxy to storm log4j logger" do
|
||||
logger = mock(Java::OrgApacheLog4j::Logger)
|
||||
Java::OrgApacheLog4j::Logger.should_receive("getLogger").with("Spout1").and_return(logger)
|
||||
it "should proxy to storm slf4j logger" do
|
||||
logger = mock(Java::OrgSlf4j::Logger)
|
||||
Java::OrgSlf4j::LoggerFactory.should_receive("get_logger").with("Spout1").and_return(logger)
|
||||
logger.should_receive(:info).with("test")
|
||||
|
||||
class Spout1 < RedStorm::SimpleSpout
|
||||
|
@ -423,10 +424,10 @@ describe RedStorm::SimpleSpout do
|
|||
end
|
||||
|
||||
it "should use own class name as logger id" do
|
||||
logger1 = mock(Java::OrgApacheLog4j::Logger)
|
||||
logger2 = mock(Java::OrgApacheLog4j::Logger)
|
||||
Java::OrgApacheLog4j::Logger.should_receive("getLogger").with("Spout1").and_return(logger1)
|
||||
Java::OrgApacheLog4j::Logger.should_receive("getLogger").with("Spout2").and_return(logger2)
|
||||
logger1 = mock(Java::OrgSlf4j::Logger)
|
||||
logger2 = mock(Java::OrgSlf4j::Logger)
|
||||
Java::OrgSlf4j::LoggerFactory.should_receive("get_logger").with("Spout1").and_return(logger1)
|
||||
Java::OrgSlf4j::LoggerFactory.should_receive("get_logger").with("Spout2").and_return(logger2)
|
||||
logger1.should_receive(:info).with("test1")
|
||||
logger2.should_receive(:info).with("test2")
|
||||
|
||||
|
@ -440,9 +441,9 @@ describe RedStorm::SimpleSpout do
|
|||
end
|
||||
|
||||
describe "in instance" do
|
||||
it "should proxy to storm log4j logger" do
|
||||
logger = mock(Java::OrgApacheLog4j::Logger)
|
||||
Java::OrgApacheLog4j::Logger.should_receive("getLogger").with("Spout1").and_return(logger)
|
||||
it "should proxy to storm slf4j logger" do
|
||||
logger = mock(Java::OrgSlf4j::Logger)
|
||||
Java::OrgSlf4j::LoggerFactory.should_receive("get_logger").with("Spout1").and_return(logger)
|
||||
|
||||
class Spout1 < RedStorm::SimpleSpout
|
||||
on_init {log.info("test")}
|
||||
|
@ -454,10 +455,10 @@ describe RedStorm::SimpleSpout do
|
|||
end
|
||||
|
||||
it "should use own class name as logger id" do
|
||||
logger1 = mock(Java::OrgApacheLog4j::Logger)
|
||||
logger2 = mock(Java::OrgApacheLog4j::Logger)
|
||||
Java::OrgApacheLog4j::Logger.should_receive("getLogger").with("Spout1").and_return(logger1)
|
||||
Java::OrgApacheLog4j::Logger.should_receive("getLogger").with("Spout2").and_return(logger2)
|
||||
logger1 = mock(Java::OrgSlf4j::Logger)
|
||||
logger2 = mock(Java::OrgSlf4j::Logger)
|
||||
Java::OrgSlf4j::LoggerFactory.should_receive("get_logger").with("Spout1").and_return(logger1)
|
||||
Java::OrgSlf4j::LoggerFactory.should_receive("get_logger").with("Spout2").and_return(logger2)
|
||||
|
||||
class Spout1 < RedStorm::SimpleSpout
|
||||
on_init {log.info("test1")}
|
||||
|
@ -474,6 +475,22 @@ describe RedStorm::SimpleSpout do
|
|||
spout2 = Spout2.new
|
||||
spout2.open(nil, nil, nil)
|
||||
end
|
||||
|
||||
it "should conform to SLF4J Named Hierarchy when loading loggers" do
|
||||
logger = mock(Java::OrgSlf4j::Logger)
|
||||
Java::OrgSlf4j::LoggerFactory.should_receive("get_logger").with("Named.Hierarchy.Spout").and_return(logger)
|
||||
module Named
|
||||
module Hierarchy
|
||||
class Spout < RedStorm::SimpleSpout
|
||||
on_init {log.info("test1")}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
logger.should_receive(:info).with("test1")
|
||||
spout = Named::Hierarchy::Spout.new
|
||||
spout.open(nil, nil, nil)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -879,4 +896,4 @@ describe RedStorm::SimpleSpout do
|
|||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -65,6 +65,19 @@ describe RedStorm::SimpleTopology do
|
|||
RedStorm::Configuration.topology_class.name.should == "Topology1"
|
||||
end
|
||||
|
||||
it "should proxy to storm slf4j logger" do
|
||||
logger = mock(Java::OrgSlf4j::Logger)
|
||||
Java::OrgSlf4j::LoggerFactory.should_receive("get_logger").with("Topology1").and_return(logger)
|
||||
logger.should_receive(:info).with("test")
|
||||
|
||||
RedStorm::Configuration.topology_class = nil
|
||||
class Topology1 < RedStorm::SimpleTopology
|
||||
log.info("test")
|
||||
bolt BoltClass1 do
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "interface" do
|
||||
it "should implement topology proxy" do
|
||||
topology = RedStorm::SimpleTopology.new
|
||||
|
@ -651,4 +664,4 @@ describe RedStorm::SimpleTopology do
|
|||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue