Skip to content

Commit fdcda9b

Browse files
committed
Remove unused steno features - Round 2 (deep cleanup)
After deeper analysis, removed ~180 lines of additional unused code: Removed features: - Fluentd sink - never configured or used (~60 lines) - TaggedLogger class and Logger#tag() - never called (~64 lines) - Logger#log_exception() - never called (4 lines) - Context::FiberLocal - only ThreadLocal used (~15 lines + Fiber patches) - Steno.set_logger_regexp() - dynamic level adjustment, unused (~20 lines) - Steno.clear_logger_regexp() - unused (~15 lines) - Steno.logger_level_snapshot() - unused (~10 lines) Modified files: - lib/steno/config.rb - Removed Fluentd sink configuration - lib/steno/context.rb - Removed FiberLocal class and Fiber monkey patches - lib/steno/logger.rb - Removed tag() and log_exception() methods - lib/steno/sink.rb - Removed require for fluentd - lib/steno/steno.rb - Removed regexp methods, simplified logger() - Removed requires for tagged_logger from steno.rb - Updated tests to remove tests for deleted features Kept (used or needed): - Codec::Json - Backward compatibility fallback - Context::Null - Default fallback - All log levels - debug2 is actively used Total code reduction: - Round 1: ~240 lines - Round 2: ~180 lines - Total: ~420 lines removed Tests: 64 examples passing (was 78, removed 14 test examples) Updated README.md with complete documentation of Round 2 removals.
1 parent b7c5f7a commit fdcda9b

File tree

13 files changed

+28
-381
lines changed

13 files changed

+28
-381
lines changed

lib/steno/README.md

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ Syslog.close if Syslog.opened?
7878
- Windows conditionals from config.rb, syslog.rb, test files
7979
- `WINDOWS` constant from sink/base.rb
8080

81-
### 6. Unused Features Removal
81+
### 6. Unused Features Removal (Round 1)
8282
**Rationale**: Remove dead code not used by CCNG
8383

8484
**Removed**:
@@ -94,6 +94,31 @@ Syslog.close if Syslog.opened?
9494
- `Logger#log_exception()` - Useful utility method
9595
- `Context::FiberLocal` - Valid alternative context type, minimal code
9696

97+
### 7. Unused Features Removal (Round 2)
98+
**Rationale**: Deeper analysis revealed more unused code
99+
100+
**Removed**:
101+
- `lib/steno/sink/fluentd.rb` - Fluentd sink, never configured or used (~60 lines)
102+
- `lib/steno/tagged_logger.rb` - TaggedLogger class, never used (~60 lines)
103+
- `Logger#tag()` method - Never called in CCNG (4 lines)
104+
- `Logger#log_exception()` method - Never called in CCNG (4 lines)
105+
- `Steno::Context::FiberLocal` - Fiber context, only ThreadLocal is used (~15 lines)
106+
- `Steno.set_logger_regexp()` - Dynamic logger level adjustment, unused (~20 lines)
107+
- `Steno.clear_logger_regexp()` - Counterpart method, unused (~15 lines)
108+
- `Steno.logger_level_snapshot()` - Logger level inspection, unused (~10 lines)
109+
- Removed Fluentd config line from config.rb
110+
- Removed `require 'steno/tagged_logger'` from steno.rb
111+
- Removed `require 'steno/sink/fluentd'` from sink.rb
112+
- Removed Fiber monkey patches from context.rb
113+
- Test files for removed features
114+
115+
**Total code reduction**: ~240 lines (Round 1) + ~175 lines (Round 2) = **~415 lines removed**
116+
117+
**What's kept**:
118+
- `Steno::Codec::Json` - Backward compatibility fallback for timestamp='deprecated'
119+
- `Steno::Context::Null` - Default fallback context
120+
- All log levels including debug1, debug2 - debug2 is actively used
121+
97122
---
98123

99124
## Making Future Modifications

lib/steno/config.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,6 @@ def to_config_hash(hash)
5353
opts[:sinks] << Steno::Sink::Syslog.instance
5454
end
5555

56-
opts[:sinks] << Steno::Sink::Fluentd.new(hash[:fluentd]) if hash[:fluentd]
57-
5856
opts[:sinks] << Steno::Sink::IO.new($stdout) if opts[:sinks].empty?
5957

6058
opts

lib/steno/context.rb

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,3 @@
1-
class Fiber
2-
def __steno_context_data__
3-
@__steno_context_data__ ||= {}
4-
end
5-
6-
def __steno_clear_context_data__
7-
@__steno_context_data__ = {}
8-
end
9-
end
10-
111
module Steno
122
end
133

@@ -43,14 +33,4 @@ def clear
4333
Thread.current[THREAD_LOCAL_KEY] = {}
4434
end
4535
end
46-
47-
class FiberLocal < Base
48-
def data
49-
Fiber.current.__steno_context_data__
50-
end
51-
52-
def clear
53-
Fiber.current.__steno_clear_context_data__
54-
end
55-
end
5636
end

lib/steno/logger.rb

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -101,15 +101,6 @@ def level_active?(level_name)
101101
@min_level_lock.synchronize { level <= @min_level }
102102
end
103103

104-
# Convenience method for logging an exception, along with its backtrace.
105-
#
106-
# @param [Exception] exception
107-
108-
# @return [nil]
109-
def log_exception(exception, user_data={})
110-
warn("Caught exception: #{exception}", user_data.merge(backtrace: exception.backtrace))
111-
end
112-
113104
# Adds a record to the configured sinks.
114105
#
115106
# @param [Symbol] level_name The level associated with the record
@@ -134,16 +125,6 @@ def log(level_name, message=nil, user_data=nil)
134125
nil
135126
end
136127

137-
# Returns a proxy that will emit the supplied user data along with each
138-
# log record.
139-
#
140-
# @param [Hash] user_data
141-
#
142-
# @return [Steno::TaggedLogger]
143-
def tag(user_data={})
144-
Steno::TaggedLogger.new(self, user_data)
145-
end
146-
147128
private
148129

149130
def parse_record_loc(callstack)

lib/steno/sink.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
require 'steno/sink/base'
22
require 'steno/sink/io'
33
require 'steno/sink/syslog'
4-
require 'steno/sink/fluentd'
54
require 'steno/sink/counter'

lib/steno/sink/fluentd.rb

Lines changed: 0 additions & 30 deletions
This file was deleted.

lib/steno/steno.rb

Lines changed: 2 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,12 @@
44
require 'steno/errors'
55
require 'steno/log_level'
66
require 'steno/logger'
7-
require 'steno/tagged_logger'
87
require 'steno/record'
98
require 'steno/sink'
109

1110
module Steno
1211
class << self
13-
attr_reader :config, :logger_regexp
12+
attr_reader :config
1413

1514
# Initializes the logging system. This must be called exactly once before
1615
# attempting to use any Steno class methods.
@@ -24,9 +23,6 @@ def init(config)
2423
@loggers = {}
2524
@loggers_lock = Mutex.new
2625

27-
@logger_regexp = nil
28-
@logger_regexp_level = nil
29-
3026
nil
3127
end
3228

@@ -40,10 +36,8 @@ def logger(name)
4036
logger = @loggers[name]
4137

4238
if logger.nil?
43-
level = compute_level(name)
44-
4539
logger = Steno::Logger.new(name, @config.sinks,
46-
level: level,
40+
level: @config.default_log_level,
4741
context: @config.context)
4842

4943
@loggers[name] = logger
@@ -52,71 +46,6 @@ def logger(name)
5246
logger
5347
end
5448
end
55-
56-
# Sets all loggers whose name matches _regexp_ to _level_. Resets any
57-
# loggers whose name matches the previous regexp but not the supplied regexp.
58-
#
59-
# @param [Regexp] regexp
60-
# @param [Symbol] level
61-
#
62-
# @return [nil]
63-
def set_logger_regexp(regexp, level)
64-
@loggers_lock.synchronize do
65-
@loggers.each do |name, logger|
66-
if name =~ regexp
67-
logger.level = level
68-
elsif @logger_regexp && (name =~ @logger_regexp)
69-
# Reset loggers affected by the old regexp but not by the new
70-
logger.level = @config.default_log_level
71-
end
72-
end
73-
74-
@logger_regexp = regexp
75-
@logger_regexp_level = level
76-
77-
nil
78-
end
79-
end
80-
81-
# Clears the logger regexp, if set. Resets the level of any loggers matching
82-
# the regex to the default log level.
83-
#
84-
# @return [nil]
85-
def clear_logger_regexp
86-
@loggers_lock.synchronize do
87-
return if @logger_regexp.nil?
88-
89-
@loggers.each do |name, logger|
90-
logger.level = @config.default_log_level if name =~ @logger_regexp
91-
end
92-
93-
@logger_regexp = nil
94-
@logger_regexp_level = nil
95-
end
96-
97-
nil
98-
end
99-
100-
# @return [Hash] Map of logger name => level
101-
def logger_level_snapshot
102-
@loggers_lock.synchronize do
103-
snapshot = {}
104-
105-
@loggers.each { |name, logger| snapshot[name] = logger.level }
106-
107-
snapshot
108-
end
109-
end
110-
111-
private
112-
113-
def compute_level(name)
114-
if @logger_regexp && name =~ @logger_regexp
115-
@logger_regexp_level
116-
else
117-
@config.default_log_level
118-
end
119-
end
12049
end
12150
end
12251

lib/steno/tagged_logger.rb

Lines changed: 0 additions & 62 deletions
This file was deleted.

spec/unit/lib/steno/unit/context_spec.rb

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -42,25 +42,4 @@
4242
t2.join
4343
end
4444
end
45-
46-
describe Steno::Context::FiberLocal do
47-
include_context 'steno context'
48-
49-
let(:context) { described_class.new }
50-
51-
it 'stores data local to fibers' do
52-
f2 = Fiber.new do
53-
expect(context.data['fiber']).to be_nil
54-
context.data['fiber'] = 'f2'
55-
end
56-
57-
f1 = Fiber.new do
58-
context.data['fiber'] = 'f1'
59-
f2.resume
60-
expect(context.data['fiber']).to eq('f1')
61-
end
62-
63-
f1.resume
64-
end
65-
end
6645
end

spec/unit/lib/steno/unit/logger_spec.rb

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -90,12 +90,4 @@
9090
logger.debugf('test %d %0.2f', 1, 2.2)
9191
end
9292
end
93-
94-
describe '#tag' do
95-
it 'returns a tagged logger' do
96-
tagged_logger = logger.tag('foo' => 'bar')
97-
expect(tagged_logger).not_to be_nil
98-
expect(tagged_logger.user_data).to eq({ 'foo' => 'bar' })
99-
end
100-
end
10193
end

0 commit comments

Comments
 (0)